| | |
| | | // const BASE_URL = 'http://192.168.20.55:12316'; |
| | | const BASE_URL = 'http://192.168.20.39:12316'; |
| | | const BASE_URL = 'http://192.168.20.55:12316'; |
| | | //const BASE_URL = 'http://192.168.20.39:12316'; |
| | | var gisUrl = 'http://183.162.245.49:3301'; |
| | | var ifreamUrl = 'http://192.168.20.39:12306/'; |
| | | |
| | |
| | | //请æ±å°å |
| | | return request.get('/auth/selectByPageAndCount', { params: params }); |
| | | } |
| | | //æé管çåè¡¨æ ¹æ®èå |
| | | export function select_AuthMenu_ByPageAndCount(params) { |
| | | //请æ±å°å |
| | | return request.get('/auth/selectByPageForMenu', { params: params }); |
| | | } |
| | | |
| | | //æéç®¡çæ·»å |
| | | export function insertAuth(params) { |
| | | return request.post('/auth/insertAuth', params); |
| | |
| | | return request.post('/Menu/updateMenus', params); |
| | | } |
| | | |
| | | |
| | | |
| | | //请æ±ç®å½æ æ°æ® |
| | | export function queryDirTree() { |
| | | return request.get('/dir/selectDirAll'); |
| | |
| | | return request.post('/user/updateUserPwd', params); |
| | | } |
| | | |
| | | |
| | | |
| | | //æ ¹æ®è§è²æ¥è¯¢ç¨æ· |
| | | export function roleUserselectByPageForRole(params) { |
| | | //请æ±å°å |
| | |
| | | export function update_args(params) { |
| | | return request.post('/args/update', params); |
| | | } |
| | | |
| | | //èåæé请æ±å表 |
| | | export function select_menuAuth_ByPageAndCount(params) { |
| | | return request.get('/menuAuth/selectByPageAndCount', { params: params }); |
| | | } |
| | | //èåæéæ·»å 夿¡æ°æ® |
| | | export function menuAuthinserts(params) { |
| | | return request.post('/menuAuth/inserts', params); |
| | | } |
| | | //èåæéå é¤å¤æ¡ |
| | | export function menuAuthDeletes(params) { |
| | | return request.get('/menuAuth/deletes', { params: params }); |
| | | } |
| | | //è§è²èµæºå表 |
| | | export function roleReselectByPageAndCount(params) { |
| | | return request.get('/roleRes/selectByPageAndCount', { params: params }); |
| | | } |
| | | //è§è²èµæºæ°å¢ |
| | | export function roleResInserts(params) { |
| | | return request.post('/roleRes/inserts', params); |
| | | } |
| | | //è§è²èµæºå é¤ |
| | | export function roleResDeletes(params) { |
| | | return request.get('/roleRes/deletes', { params: params }); |
| | | } |
| | | //èµæºç®¡ç-æ ¹æ®è§è²å页æ¥è¯¢å¹¶è¿åè®°å½æ° |
| | | export function resSelectCountForRole(params) { |
| | | return request.get('/res/selectCountForRole', { params: params }); |
| | | } |
| | |
| | | operatManage: 'Operat Manage', |
| | | ResourceLog: 'Resource Log', |
| | | UserRoleAuthorization: 'User Role Authorization', |
| | | MenuRoleAuthorization: 'Menu Permission Authorization', |
| | | UserRoleAuthorizationObj: { |
| | | RoleTable: 'Role Table', |
| | | userTable: 'user Table', |
| | |
| | | delete: 'delete', |
| | | serialNumber: 'serial Number', |
| | | name: 'name', |
| | | PermissionTable: 'Permission table', |
| | | server: 'Service Address', |
| | | }, |
| | | ELM: { |
| | | username: 'username', |
| | |
| | | operatManage: 'è¿ç»´ç®¡ç', |
| | | ResourceLog: 'èµæºæ¥å¿', |
| | | UserRoleAuthorization: 'ç¨æ·è§è²ææ', |
| | | MenuRoleAuthorization: 'èåæéææ', |
| | | UserRoleAuthorizationObj: { |
| | | RoleTable: 'è§è²è¡¨', |
| | | userTable: 'ç¨æ·è¡¨', |
| | |
| | | delete: 'å é¤', |
| | | serialNumber: 'ç¼å·', |
| | | name: 'åç§°', |
| | | PermissionTable: 'æé表', |
| | | server: 'æå¡å°å', |
| | | }, |
| | | ELM: { |
| | | username: 'ç¨æ·åç§°', |
| | |
| | | rejection: 'ææ¹', |
| | | userexport: 'Excelç¨æ·å¯¼åº', |
| | | userinput: 'Excelç¨æ·å¯¼å
¥', |
| | | userStatus: "ç¨æ·ç¶æ", |
| | | uname: "ç¨æ·å", |
| | | pwd: "å¯ç ", |
| | | sex: "æ§å«", |
| | | natives: "ç±è´¯", |
| | | userStatus: 'ç¨æ·ç¶æ', |
| | | uname: 'ç¨æ·å', |
| | | pwd: 'å¯ç ', |
| | | sex: 'æ§å«', |
| | | natives: 'ç±è´¯', |
| | | depName: 'åä½åç§°', |
| | | idcard: "è¯ä»¶å·", |
| | | job: "å·¥ä½", |
| | | edu: "æè²", |
| | | addr: "å°å", |
| | | email: "çµåé®ä»¶", |
| | | contact: "èç³»æ¹å¼", |
| | | status: "ç¶æ", |
| | | bak: "夿³¨", |
| | | depid: "æå±é¨é¨", |
| | | idcard: 'è¯ä»¶å·', |
| | | job: 'å·¥ä½', |
| | | edu: 'æè²', |
| | | addr: 'å°å', |
| | | email: 'çµåé®ä»¶', |
| | | contact: 'èç³»æ¹å¼', |
| | | status: 'ç¶æ', |
| | | bak: '夿³¨', |
| | | depid: 'æå±é¨é¨', |
| | | chineseName: '䏿å[ç¨æ·å]', |
| | | affiliatedUnit: 'æå±åä½[å¨è]', |
| | | mobileNumber: 'ææºå·[æ¥æ¶çä¿¡]', |
| | |
| | | import groupManage from '../views/userManage/groupManage.vue'; // ç¨æ·ç®¡ç模å |
| | | import authorityManage from '@/views/userManage/authorityManage.vue'; //ç¨æ·ç®¡ç-æé管ç |
| | | import resourceManage from '@/views/userManage/resourceManage.vue'; //ç¨æ·ç®¡ç-èµæºç®¡ç |
| | | import userRoleAuthorization from '@/views/AuthorizationManagement/userRoleAuthorization.vue'; //ç³»ç»ç®¡ç- |
| | | const originalPush = VueRouter.prototype.push |
| | | import userRoleAuthorization from '@/views/AuthorizationManagement/userRoleAuthorization.vue'; //ç³»ç»ç®¡ç-ç¨æ·è§è²ææ |
| | | |
| | | import menuRoleAuthorization from '@/views/AuthorizationManagement/menuRoleAuthorization.vue'; //ç³»ç»ç®¡ç-èåæéææ |
| | | import roleResAuthorization from '@/views/AuthorizationManagement/roleResAuthorization.vue'; //ç³»ç»ç®¡ç-è§è²èµæºææ |
| | | |
| | | const originalPush = VueRouter.prototype.push; |
| | | |
| | | VueRouter.prototype.push = function push(location) { |
| | | |
| | | return originalPush.call(this, location).catch(err => err) |
| | | |
| | | } |
| | | return originalPush.call(this, location).catch((err) => err); |
| | | }; |
| | | |
| | | // 群ç»ç®¡ç |
| | | Vue.use(VueRouter); |
| | |
| | | requireAuth: true, // æ è¯è¯¥è·¯ç±æ¯å¦éè¦ç»å½ |
| | | }, |
| | | }, |
| | | |
| | | { |
| | | path: '/menuRoleAuthorization', |
| | | component: menuRoleAuthorization, |
| | | name: 'menuRoleAuthorization', |
| | | meta: { |
| | | title: 'èåæéææ', |
| | | requireAuth: true, // æ è¯è¯¥è·¯ç±æ¯å¦éè¦ç»å½ |
| | | }, |
| | | }, |
| | | { |
| | | path: '/roleResAuthorization', |
| | | component: roleResAuthorization, |
| | | name: 'roleResAuthorization', |
| | | meta: { |
| | | title: 'èåæéææ', |
| | | requireAuth: true, // æ è¯è¯¥è·¯ç±æ¯å¦éè¦ç»å½ |
| | | }, |
| | | }, |
| | | ], |
| | | }, |
| | | ]; |
¶Ô±ÈÐÂÎļþ |
| | |
| | | <template> |
| | | <div class="menuSettings_box"> |
| | | <div class="menuSettings_tree"> |
| | | <My-bread |
| | | :list="[ |
| | | `${$t('operatManage.operatManage')}`, |
| | | |
| | | `${$t('operatManage.MenuRoleAuthorization')}`, |
| | | ]" |
| | | ></My-bread> |
| | | |
| | | <el-divider /> |
| | | <div class="menuTreeBox"> |
| | | <el-tree |
| | | :data="depList" |
| | | :props="defaultProps" |
| | | :show-checkbox="true" |
| | | :check-on-click-node="true" |
| | | :check-strictly="true" |
| | | node-key="id" |
| | | @check="treeCheck" |
| | | ref="treeForm" |
| | | > |
| | | </el-tree> |
| | | </div> |
| | | </div> |
| | | |
| | | <div class="menuSettings"> |
| | | <!-- <div class="title_box"> |
| | | <h4>详ç»ä¿¡æ¯</h4> |
| | | </div> --> |
| | | <div |
| | | style=" |
| | | font-size: 14px; |
| | | color: #606266; |
| | | line-height: 1; |
| | | cursor: text; |
| | | position: relative; |
| | | top: 5px; |
| | | margin-left: 10px; |
| | | display: flex; |
| | | align-items: center; |
| | | " |
| | | > |
| | | <span> |
| | | {{ |
| | | $t('operatManage.UserRoleAuthorizationObj.PermissionTable') |
| | | }}</span |
| | | > |
| | | <div class="btn" style="margin-left: auto"> |
| | | <el-button |
| | | type="primary" |
| | | icon="el-icon-circle-plus-outline" |
| | | size="small" |
| | | :disabled="roleid == null ? true : false" |
| | | @click="adduser" |
| | | >{{ $t('operatManage.UserRoleAuthorizationObj.Added') }}</el-button |
| | | > |
| | | <el-button |
| | | type="danger" |
| | | icon="el-icon-delete" |
| | | size="small" |
| | | @click="deletesUser" |
| | | :disabled="roleid == null ? true : false" |
| | | >{{ $t('operatManage.UserRoleAuthorizationObj.delete') }}</el-button |
| | | > |
| | | </div> |
| | | </div> |
| | | <el-divider class="divider" /> |
| | | |
| | | <el-table |
| | | :data="tableData" |
| | | stripe |
| | | style="width: 100%" |
| | | height="85%" |
| | | @selection-change="handleSelectionChange" |
| | | :header-cell-style="{ |
| | | background: 'transparent', |
| | | }" |
| | | > |
| | | <el-table-column type="selection" width="55"> </el-table-column> |
| | | <el-table-column |
| | | prop="authid" |
| | | :label="$t('operatManage.UserRoleAuthorizationObj.serialNumber')" |
| | | > |
| | | </el-table-column> |
| | | <el-table-column |
| | | prop="authName" |
| | | :label="$t('operatManage.UserRoleAuthorizationObj.name')" |
| | | > |
| | | </el-table-column> |
| | | </el-table> |
| | | |
| | | <div style="margin-top: 20px; text-align: center" class="pagination_box"> |
| | | <el-pagination |
| | | @size-change="userhandleSizeChange" |
| | | @current-change="userhandleCurrentChange" |
| | | :current-page="userlistData.pageIndex" |
| | | :page-sizes="[10, 20, 30, 40]" |
| | | :page-size="userlistData.pageSize" |
| | | layout="total, sizes, prev, pager, next, jumper" |
| | | :total="usercount" |
| | | > |
| | | </el-pagination> |
| | | </div> |
| | | </div> |
| | | <el-dialog |
| | | :title="$t('operatManage.UserRoleAuthorizationObj.Added')" |
| | | :visible.sync="dialogTableVisible" |
| | | > |
| | | <el-table |
| | | :data="gridData" |
| | | height="40vh" |
| | | @selection-change="addhandleSelectionChange" |
| | | > |
| | | <el-table-column type="selection" width="55"> </el-table-column> |
| | | <el-table-column |
| | | prop="id" |
| | | :label="$t('operatManage.UserRoleAuthorizationObj.serialNumber')" |
| | | > |
| | | </el-table-column> |
| | | <el-table-column |
| | | prop="name" |
| | | :label="$t('operatManage.UserRoleAuthorizationObj.name')" |
| | | > |
| | | </el-table-column> |
| | | </el-table> |
| | | <div style="margin-top: 20px; text-align: center" class="pagination_box"> |
| | | <el-pagination |
| | | @size-change="addhandleSizeChange" |
| | | @current-change="addhandleCurrentChange" |
| | | :current-page="addlistData.pageIndex" |
| | | :page-sizes="[10, 20, 30, 40]" |
| | | :page-size="addlistData.pageSize" |
| | | layout="total, sizes, prev, pager, next, jumper" |
| | | :total="addcount" |
| | | > |
| | | </el-pagination> |
| | | </div> |
| | | <div slot="footer" class="dialog-footer"> |
| | | <el-button @click="dialogTableVisible = false">{{ |
| | | $t('dataManage.dictionaryManageObj.cancel') |
| | | }}</el-button> |
| | | <el-button type="primary" @click="addConfirm">{{ |
| | | $t('dataManage.dictionaryManageObj.confirm') |
| | | }}</el-button> |
| | | </div> |
| | | </el-dialog> |
| | | </div> |
| | | </template> |
| | | |
| | | <script> |
| | | import MyBread from '../../components/MyBread.vue'; |
| | | import { |
| | | queryMenuTree, |
| | | select_menuAuth_ByPageAndCount, |
| | | roleUserselectByPageForRole, |
| | | menuAuthDeletes, |
| | | select_AuthMenu_ByPageAndCount, |
| | | menuAuthinserts, |
| | | } from '../../api/api'; |
| | | export default { |
| | | //importå¼å
¥çç»ä»¶éè¦æ³¨å
¥å°å¯¹è±¡ä¸æè½ä½¿ç¨ |
| | | components: { |
| | | MyBread, |
| | | }, |
| | | |
| | | data() { |
| | | return { |
| | | addcount: 0, |
| | | gridData: [], |
| | | addlistData: { |
| | | pageIndex: 1, |
| | | pageSize: 10, |
| | | }, |
| | | dialogTableVisible: false, |
| | | usertableData: [], |
| | | userlistData: { |
| | | pageIndex: 1, |
| | | pageSize: 10, |
| | | }, |
| | | usercount: 0, |
| | | tableData: [], |
| | | // å½åéæ©çè¡çid |
| | | templateSelection: '', |
| | | // å½åéæ©çè¡çæ°æ® |
| | | checkList: [], |
| | | |
| | | defaultProps: { |
| | | children: 'children', |
| | | label: 'cnName', |
| | | }, |
| | | oriData: [], //åå§æ æ°æ® |
| | | depList: [], //elæ æ°æ® |
| | | backUpData: {}, |
| | | formLabelWidth: '170px', |
| | | listData: { |
| | | pageIndex: 1, |
| | | pageSize: 10, |
| | | }, |
| | | count: 0, |
| | | usermultipleSelection: [], |
| | | debid: null, |
| | | roleid: null, |
| | | addmultipleSelection: [], |
| | | }; |
| | | }, |
| | | methods: { |
| | | /** |
| | | * sws |
| | | */ |
| | | |
| | | // é¨é¨è¯·æ± |
| | | async getMenuTree() { |
| | | //è·åç®å½æ æå¤§IDï¼æ°å»ºèç¹ä½¿ç¨ |
| | | const data = await queryMenuTree(); |
| | | if (data.code !== 200) { |
| | | return this.$message.error('请æ±å使¥é'); |
| | | } |
| | | this.depList = this.treeData(data.result); |
| | | }, |
| | | treeData(source) { |
| | | let cloneData = JSON.parse(JSON.stringify(source)); // å¯¹æºæ°æ®æ·±åº¦å
é |
| | | return cloneData.filter((father) => { |
| | | // å¾ªç¯ææé¡¹ |
| | | let branchArr = cloneData.filter((child) => father.id == child.pid); // 对æ¯IDï¼åå«ä¸ä¸çº§èåï¼å¹¶è¿åæ°æ® |
| | | branchArr.length > 0 ? (father.children = branchArr) : ''; // ç»ç¶çº§æ·»å ä¸ä¸ªchildren屿§ï¼å¹¶èµå¼ |
| | | return father.pid == 0; // è¿åä¸çº§èå |
| | | }); |
| | | }, |
| | | // é¨é¨æ åé |
| | | treeCheck(node, list) { |
| | | //node 该èç¹æå¯¹åºç对象ãlist æ ç®åçéä¸ç¶æå¯¹è±¡ |
| | | //éä¸äºä»¶å¨éä¸åæ§è¡ï¼å½lisä¸æä¸¤ä¸ªé䏿¶ï¼ä½¿ç¨setCheckedKeysæ¹æ³ï¼éä¸ä¸ä¸ªèç¹ |
| | | |
| | | if (list.checkedNodes.length > 0) { |
| | | this.listData.menuid = node.id; |
| | | this.debid = node.id; |
| | | this.roleid = node.id; |
| | | this.getRole(); |
| | | if (list.checkedKeys.length == 2) { |
| | | //åéå®ç° |
| | | this.$refs.treeForm.setCheckedKeys([node.id]); |
| | | } |
| | | } else { |
| | | this.debid = null; |
| | | this.roleid = null; |
| | | this.tableData = []; |
| | | this.usertableData = []; |
| | | } |
| | | }, |
| | | |
| | | addConfirm() { |
| | | this.$confirm('ç¡®å®æ¯å¦æ°å¢', 'æç¤º', { |
| | | confirmButtonText: 'ç¡®å®', |
| | | cancelButtonText: 'åæ¶', |
| | | type: 'warning', |
| | | }) |
| | | .then(async () => { |
| | | let arr = []; |
| | | this.addmultipleSelection.forEach((e) => { |
| | | arr.push({ menuid: this.roleid, authid: e.id }); |
| | | }); |
| | | |
| | | const data = await menuAuthinserts(arr); |
| | | if (data.code !== 200) { |
| | | return this.$message.error('æ°å¢å¤±è´¥'); |
| | | } |
| | | this.$message({ |
| | | type: 'success', |
| | | message: 'æ°å¢æå!', |
| | | }); |
| | | this.dialogTableVisible = false; |
| | | this.getRole(); |
| | | }) |
| | | .catch(() => {}); |
| | | }, |
| | | adduser() { |
| | | this.dialogTableVisible = true; |
| | | this.getadduserList(); |
| | | }, |
| | | //ç¨æ·å é¤ |
| | | async deletesUser() { |
| | | let arr = []; |
| | | this.usermultipleSelection.forEach((e) => { |
| | | arr.push(e.id); |
| | | }); |
| | | const data = await menuAuthDeletes({ ids: arr.toString() }); |
| | | if (data.code !== 200) { |
| | | return this.$message.error('å é¤å¤±è´¥'); |
| | | } |
| | | this.$message({ |
| | | message: 'å 餿å', |
| | | type: 'success', |
| | | }); |
| | | this.getRole(); |
| | | }, |
| | | |
| | | async getadduserList() { |
| | | this.addlistData.menuid = this.roleid; |
| | | const data = await select_AuthMenu_ByPageAndCount(this.addlistData); |
| | | if (data.code !== 200) { |
| | | return this.$message.error('æ°å¢ç¨æ·å表请æ±é误'); |
| | | } |
| | | this.gridData = data.result; |
| | | this.addcount = data.count; |
| | | }, |
| | | |
| | | //ç¨æ·è¡¨å¤é |
| | | handleSelectionChange(val) { |
| | | this.usermultipleSelection = val; |
| | | }, |
| | | //æ°å¢ç¨æ·è¡¨å¤é |
| | | addhandleSelectionChange(val) { |
| | | this.addmultipleSelection = val; |
| | | }, |
| | | // æ°å¢ç¨æ·è¡¨å页 |
| | | addhandleSizeChange(val) { |
| | | this.addlistData.pageSize = val; |
| | | this.getadduserList(); |
| | | }, |
| | | // æ°å¢ç¨æ·è¡¨å页 |
| | | addhandleCurrentChange(val) { |
| | | this.addlistData.pageIndex = val; |
| | | this.getadduserList(); |
| | | }, |
| | | // ç¨æ·è¡¨å页 |
| | | userhandleSizeChange(val) { |
| | | this.userlistData.pageSize = val; |
| | | this.getRole(); |
| | | }, |
| | | // ç¨æ·è¡¨å页 |
| | | userhandleCurrentChange(val) { |
| | | this.userlistData.pageIndex = val; |
| | | this.getRole(); |
| | | }, |
| | | |
| | | // è§è²è¡¨è¯·æ± |
| | | async getRole() { |
| | | const data = await select_menuAuth_ByPageAndCount(this.listData); |
| | | if (data.code !== 200) { |
| | | return this.$message.error('ç¨æ·è§è²è¯·æ±é误'); |
| | | } |
| | | |
| | | this.tableData = data.result; |
| | | this.usercount = data.count; |
| | | }, |
| | | }, |
| | | created() { |
| | | this.getMenuTree(); |
| | | }, |
| | | }; |
| | | </script> |
| | | <style lang="less" scoped> |
| | | //@import url(); å¼å
¥å
Œ
±cssç±» |
| | | .menuSettings_box { |
| | | // background: rgb(240, 242, 245); |
| | | border-radius: 10px; |
| | | height: 100%; |
| | | padding: 10px; |
| | | box-sizing: border-box; |
| | | display: flex; |
| | | .menuSettings_tree { |
| | | position: relative; |
| | | width: 30%; |
| | | height: 100%; |
| | | background: rgb(240, 242, 245); |
| | | padding: 20px; |
| | | border-radius: 10px; |
| | | box-sizing: border-box; |
| | | overflow: auto; |
| | | .saveBtn { |
| | | position: absolute; |
| | | left: 250px; |
| | | top: 23px; |
| | | } |
| | | .menuTreeBox { |
| | | height: 90%; |
| | | overflow: auto; |
| | | .el-tree { |
| | | background: transparent; |
| | | font-size: 15px; |
| | | font-family: Microsoft YaHei; |
| | | font-weight: 400; |
| | | color: #000000; |
| | | // /deep/ .el-tree-node__label { |
| | | // font-size: 18px; |
| | | // } |
| | | /deep/ .el-tree-node { |
| | | padding-top: 10px; |
| | | // padding-bottom: 10px; |
| | | } |
| | | /deep/ .el-tree-node:focus > .el-tree-node__content { |
| | | background-color: #b9b9b9; |
| | | } |
| | | /deep/ .el-tree-node__content:hover { |
| | | background-color: rgb(153, 153, 153); |
| | | } |
| | | .btnBox { |
| | | margin-left: 5px; |
| | | .el-button + .el-button { |
| | | margin-left: 5px; |
| | | } |
| | | } |
| | | } |
| | | } |
| | | } |
| | | .menuSettings { |
| | | width: 70%; |
| | | border-radius: 10px; |
| | | background: rgb(240, 242, 245); |
| | | margin-left: 10px; |
| | | height: 100%; |
| | | padding: 20px; |
| | | box-sizing: border-box; |
| | | .title_box { |
| | | background: #fff; |
| | | padding: 10px; |
| | | margin-bottom: 24px; |
| | | display: flex; |
| | | border-radius: 10px; |
| | | border: 1px solid rgb(202, 201, 204); |
| | | box-sizing: border-box; |
| | | } |
| | | } |
| | | .table_box { |
| | | padding: 10px; |
| | | background: #fff; |
| | | border-radius: 5px; |
| | | border: 1px solid rgb(202, 201, 204); |
| | | overflow: auto; |
| | | height: 85%; |
| | | } |
| | | .divider { |
| | | margin-top: 8px; |
| | | } |
| | | } |
| | | .el-table, |
| | | .el-table /deep/ .el-table__expanded-cell { |
| | | background-color: transparent; |
| | | } |
| | | |
| | | .el-table /deep/ th, |
| | | .el-table /deep/ tr { |
| | | background-color: transparent; |
| | | } |
| | | </style> |
¶Ô±ÈÐÂÎļþ |
| | |
| | | <template> |
| | | <div class="menuSettings_box"> |
| | | <div class="menuSettings_tree"> |
| | | <My-bread |
| | | :list="[ |
| | | `${$t('operatManage.operatManage')}`, |
| | | `${$t('operatManage.UserRoleAuthorization')}`, |
| | | ]" |
| | | ></My-bread> |
| | | |
| | | <el-divider /> |
| | | <div class="menuTreeBox"> |
| | | <el-tree |
| | | :data="depList" |
| | | :props="defaultProps" |
| | | :show-checkbox="true" |
| | | :check-on-click-node="true" |
| | | :check-strictly="true" |
| | | node-key="id" |
| | | @check="treeCheck" |
| | | ref="treeForm" |
| | | > |
| | | </el-tree> |
| | | </div> |
| | | </div> |
| | | <div |
| | | class="menuSettings_tree" |
| | | style="margin-left: 10px; width: calc(50% - 172px)" |
| | | > |
| | | <div |
| | | style=" |
| | | font-size: 14px; |
| | | color: #606266; |
| | | line-height: 1; |
| | | cursor: text; |
| | | position: relative; |
| | | top: 10px; |
| | | margin-left: 10px; |
| | | " |
| | | > |
| | | {{ $t('operatManage.UserRoleAuthorizationObj.RoleTable') }} |
| | | </div> |
| | | <el-divider /> |
| | | <el-table |
| | | :data="tableData" |
| | | style="width: 100%" |
| | | @row-click="singleElection" |
| | | highlight-current-row |
| | | height="85%" |
| | | :header-cell-style="{ |
| | | background: 'transparent', |
| | | }" |
| | | > |
| | | <el-table-column align="center" width="55"> |
| | | <template slot-scope="scope"> |
| | | <!-- å¯ä»¥æå¨çä¿®æ¹labelçå¼ï¼ä»èæ§å¶éæ©åªä¸é¡¹ --> |
| | | <el-radio |
| | | class="radio" |
| | | v-model="templateSelection" |
| | | :label="scope.row.id" |
| | | > </el-radio |
| | | > |
| | | </template> |
| | | </el-table-column> |
| | | <el-table-column |
| | | prop="id" |
| | | :label="$t('operatManage.UserRoleAuthorizationObj.serialNumber')" |
| | | > |
| | | </el-table-column> |
| | | <el-table-column |
| | | prop="name" |
| | | :label="$t('operatManage.UserRoleAuthorizationObj.name')" |
| | | > |
| | | </el-table-column> |
| | | </el-table> |
| | | <div style="text-align: center; margin-top: 20px"> |
| | | <el-pagination |
| | | @size-change="handleSizeChange" |
| | | @current-change="handleCurrentChange" |
| | | :current-page="listData.pageIndex" |
| | | :page-sizes="[10, 20, 30, 40]" |
| | | :page-size="userlistData.pageSize" |
| | | layout="total, sizes, prev, pager, next, jumper" |
| | | :total="count" |
| | | > |
| | | </el-pagination> |
| | | </div> |
| | | </div> |
| | | <div class="menuSettings"> |
| | | <!-- <div class="title_box"> |
| | | <h4>详ç»ä¿¡æ¯</h4> |
| | | </div> --> |
| | | <div |
| | | style=" |
| | | font-size: 14px; |
| | | color: #606266; |
| | | line-height: 1; |
| | | cursor: text; |
| | | position: relative; |
| | | top: 5px; |
| | | margin-left: 10px; |
| | | display: flex; |
| | | align-items: center; |
| | | " |
| | | > |
| | | <span> |
| | | {{ $t('operatManage.UserRoleAuthorizationObj.userTable') }}</span |
| | | > |
| | | <div class="btn" style="margin-left: auto"> |
| | | <el-button |
| | | type="primary" |
| | | icon="el-icon-circle-plus-outline" |
| | | size="small" |
| | | :disabled="roleid == null ? true : false" |
| | | @click="adduser" |
| | | >{{ $t('operatManage.UserRoleAuthorizationObj.Added') }}</el-button |
| | | > |
| | | <el-button |
| | | type="danger" |
| | | icon="el-icon-delete" |
| | | size="small" |
| | | @click="deletesUser" |
| | | :disabled="roleid == null ? true : false" |
| | | >{{ $t('operatManage.UserRoleAuthorizationObj.delete') }}</el-button |
| | | > |
| | | </div> |
| | | </div> |
| | | <el-divider class="divider" /> |
| | | |
| | | <el-table |
| | | :data="usertableData" |
| | | stripe |
| | | style="width: 100%" |
| | | height="85%" |
| | | @selection-change="handleSelectionChange" |
| | | :header-cell-style="{ |
| | | background: 'transparent', |
| | | }" |
| | | > |
| | | <el-table-column type="selection" width="55"> </el-table-column> |
| | | <el-table-column |
| | | prop="id" |
| | | :label="$t('operatManage.UserRoleAuthorizationObj.serialNumber')" |
| | | > |
| | | </el-table-column> |
| | | <el-table-column |
| | | prop="resName" |
| | | :label="$t('operatManage.UserRoleAuthorizationObj.name')" |
| | | > |
| | | </el-table-column> |
| | | <el-table-column |
| | | prop="server" |
| | | :label="$t('operatManage.UserRoleAuthorizationObj.server')" |
| | | > |
| | | </el-table-column> |
| | | </el-table> |
| | | |
| | | <div style="margin-top: 20px; text-align: center" class="pagination_box"> |
| | | <el-pagination |
| | | @size-change="userhandleSizeChange" |
| | | @current-change="userhandleCurrentChange" |
| | | :current-page="userlistData.pageIndex" |
| | | :page-sizes="[10, 20, 30, 40]" |
| | | :page-size="userlistData.pageSize" |
| | | layout="total, sizes, prev, pager, next, jumper" |
| | | :total="usercount" |
| | | > |
| | | </el-pagination> |
| | | </div> |
| | | </div> |
| | | <el-dialog |
| | | :title="$t('operatManage.UserRoleAuthorizationObj.Added')" |
| | | :visible.sync="dialogTableVisible" |
| | | > |
| | | <el-table |
| | | :data="gridData" |
| | | height="40vh" |
| | | @selection-change="addhandleSelectionChange" |
| | | > |
| | | <el-table-column type="selection" width="55"> </el-table-column> |
| | | <el-table-column |
| | | prop="id" |
| | | :label="$t('operatManage.UserRoleAuthorizationObj.serialNumber')" |
| | | > |
| | | </el-table-column> |
| | | <el-table-column |
| | | prop="name" |
| | | :label="$t('operatManage.UserRoleAuthorizationObj.name')" |
| | | > |
| | | </el-table-column> |
| | | <el-table-column |
| | | prop="server" |
| | | :label="$t('operatManage.UserRoleAuthorizationObj.server')" |
| | | > |
| | | </el-table-column> |
| | | </el-table> |
| | | <div style="margin-top: 20px; text-align: center" class="pagination_box"> |
| | | <el-pagination |
| | | @size-change="addhandleSizeChange" |
| | | @current-change="addhandleCurrentChange" |
| | | :current-page="addlistData.pageIndex" |
| | | :page-sizes="[10, 20, 30, 40]" |
| | | :page-size="addlistData.pageSize" |
| | | layout="total, sizes, prev, pager, next, jumper" |
| | | :total="addcount" |
| | | > |
| | | </el-pagination> |
| | | </div> |
| | | <div slot="footer" class="dialog-footer"> |
| | | <el-button @click="dialogTableVisible = false">{{ |
| | | $t('dataManage.dictionaryManageObj.cancel') |
| | | }}</el-button> |
| | | <el-button type="primary" @click="addConfirm">{{ |
| | | $t('dataManage.dictionaryManageObj.confirm') |
| | | }}</el-button> |
| | | </div> |
| | | </el-dialog> |
| | | </div> |
| | | </template> |
| | | |
| | | <script> |
| | | import MyBread from '../../components/MyBread.vue'; |
| | | import { |
| | | queryDepTree, |
| | | select_Role_ByPageAndCount, |
| | | roleReselectByPageAndCount, |
| | | roleResDeletes, |
| | | resSelectCountForRole, |
| | | roleResInserts, |
| | | } from '../../api/api'; |
| | | export default { |
| | | //importå¼å
¥çç»ä»¶éè¦æ³¨å
¥å°å¯¹è±¡ä¸æè½ä½¿ç¨ |
| | | components: { |
| | | MyBread, |
| | | }, |
| | | |
| | | data() { |
| | | return { |
| | | addcount: 0, |
| | | gridData: [], |
| | | addlistData: { |
| | | pageIndex: 1, |
| | | pageSize: 10, |
| | | }, |
| | | dialogTableVisible: false, |
| | | usertableData: [], |
| | | userlistData: { |
| | | pageIndex: 1, |
| | | pageSize: 10, |
| | | }, |
| | | usercount: 0, |
| | | tableData: [], |
| | | // å½åéæ©çè¡çid |
| | | templateSelection: '', |
| | | // å½åéæ©çè¡çæ°æ® |
| | | checkList: [], |
| | | |
| | | defaultProps: { |
| | | children: 'children', |
| | | label: 'name', |
| | | }, |
| | | oriData: [], //åå§æ æ°æ® |
| | | depList: [], //elæ æ°æ® |
| | | backUpData: {}, |
| | | formLabelWidth: '170px', |
| | | listData: { |
| | | pageIndex: 1, |
| | | pageSize: 10, |
| | | }, |
| | | count: 0, |
| | | usermultipleSelection: [], |
| | | debid: null, |
| | | roleid: null, |
| | | addmultipleSelection: [], |
| | | }; |
| | | }, |
| | | methods: { |
| | | addConfirm() { |
| | | this.$confirm('ç¡®å®æ¯å¦æ°å¢', 'æç¤º', { |
| | | confirmButtonText: 'ç¡®å®', |
| | | cancelButtonText: 'åæ¶', |
| | | type: 'warning', |
| | | }) |
| | | .then(async () => { |
| | | let arr = []; |
| | | this.addmultipleSelection.forEach((e) => { |
| | | arr.push({ resid: e.id, roleid: this.roleid }); |
| | | }); |
| | | const data = await roleResInserts(arr); |
| | | if (data.code !== 200) { |
| | | return this.$message.error('æ°å¢å¤±è´¥'); |
| | | } |
| | | |
| | | this.$message({ |
| | | type: 'success', |
| | | message: 'æ°å¢æå!', |
| | | }); |
| | | this.dialogTableVisible = false; |
| | | this.getuserList(); |
| | | }) |
| | | .catch(() => {}); |
| | | }, |
| | | adduser() { |
| | | this.dialogTableVisible = true; |
| | | this.getadduserList(); |
| | | }, |
| | | //ç¨æ·å é¤ |
| | | async deletesUser() { |
| | | let arr = []; |
| | | this.usermultipleSelection.forEach((e) => { |
| | | arr.push(e.id); |
| | | }); |
| | | const data = await roleResDeletes({ ids: arr.toString() }); |
| | | if (data.code !== 200) { |
| | | return this.$message.error('å é¤å¤±è´¥'); |
| | | } |
| | | this.$message({ |
| | | message: 'å 餿å', |
| | | type: 'success', |
| | | }); |
| | | this.getuserList(); |
| | | }, |
| | | //ç¨æ·è¡¨å¤é |
| | | handleSelectionChange(val) { |
| | | this.usermultipleSelection = val; |
| | | }, |
| | | //æ°å¢ç¨æ·è¡¨å¤é |
| | | addhandleSelectionChange(val) { |
| | | this.addmultipleSelection = val; |
| | | }, |
| | | // æ°å¢ç¨æ·è¡¨å页 |
| | | addhandleSizeChange(val) { |
| | | this.addlistData.pageSize = val; |
| | | this.getadduserList(); |
| | | }, |
| | | // æ°å¢ç¨æ·è¡¨å页 |
| | | addhandleCurrentChange(val) { |
| | | this.addlistData.pageIndex = val; |
| | | this.getadduserList(); |
| | | }, |
| | | // ç¨æ·è¡¨å页 |
| | | userhandleSizeChange(val) { |
| | | this.userlistData.pageSize = val; |
| | | this.getuserList(); |
| | | }, |
| | | // ç¨æ·è¡¨å页 |
| | | userhandleCurrentChange(val) { |
| | | this.userlistData.pageIndex = val; |
| | | this.getuserList(); |
| | | }, |
| | | // è§è²è¡¨å页 |
| | | handleSizeChange(val) { |
| | | this.listData.pageSize = val; |
| | | this.getRole(); |
| | | }, |
| | | // è§è²è¡¨å页 |
| | | handleCurrentChange(val) { |
| | | this.listData.pageIndex = val; |
| | | this.getRole(); |
| | | }, |
| | | // è§è²åé |
| | | singleElection(row) { |
| | | this.templateSelection = row.id; |
| | | this.checkList = this.tableData.filter((item) => item.id === row.id); |
| | | this.userlistData.roleid = row.id; |
| | | this.roleid = row.id; |
| | | this.getuserList(); |
| | | }, |
| | | // é¨é¨è¯·æ± |
| | | async getMenuTree() { |
| | | //è·åç®å½æ æå¤§IDï¼æ°å»ºèç¹ä½¿ç¨ |
| | | const data = await queryDepTree(); |
| | | |
| | | if (data.code !== 200) { |
| | | return this.$message.error('请æ±å使¥é'); |
| | | } |
| | | this.depList = this.treeData(data.result); |
| | | }, |
| | | treeData(source) { |
| | | let cloneData = JSON.parse(JSON.stringify(source)); // å¯¹æºæ°æ®æ·±åº¦å
é |
| | | return cloneData.filter((father) => { |
| | | // å¾ªç¯ææé¡¹ |
| | | let branchArr = cloneData.filter((child) => father.id == child.pid); // 对æ¯IDï¼åå«ä¸ä¸çº§èåï¼å¹¶è¿åæ°æ® |
| | | branchArr.length > 0 ? (father.children = branchArr) : ''; // ç»ç¶çº§æ·»å ä¸ä¸ªchildren屿§ï¼å¹¶èµå¼ |
| | | return father.pid == 0; // è¿åä¸çº§èå |
| | | }); |
| | | }, |
| | | // é¨é¨æ åé |
| | | treeCheck(node, list) { |
| | | //node 该èç¹æå¯¹åºç对象ãlist æ ç®åçéä¸ç¶æå¯¹è±¡ |
| | | //éä¸äºä»¶å¨éä¸åæ§è¡ï¼å½lisä¸æä¸¤ä¸ªé䏿¶ï¼ä½¿ç¨setCheckedKeysæ¹æ³ï¼éä¸ä¸ä¸ªèç¹ |
| | | |
| | | if (list.checkedNodes.length > 0) { |
| | | this.listData.depid = node.id; |
| | | this.debid = node.id; |
| | | this.getRole(); |
| | | if (list.checkedKeys.length == 2) { |
| | | //åéå®ç° |
| | | this.$refs.treeForm.setCheckedKeys([node.id]); |
| | | } |
| | | } else { |
| | | this.debid = null; |
| | | this.roleid = null; |
| | | this.tableData = []; |
| | | this.usertableData = []; |
| | | } |
| | | }, |
| | | async getadduserList() { |
| | | this.addlistData.roleid = this.roleid; |
| | | |
| | | // this.addlistData.debid = this.debid; |
| | | const data = await resSelectCountForRole(this.addlistData); |
| | | if (data.code !== 200) { |
| | | return this.$message.error('æ°å¢èµæºå表请æ±é误'); |
| | | } |
| | | this.gridData = data.result; |
| | | this.addcount = data.count; |
| | | }, |
| | | // ç¨æ·è¡¨è¯·æ± |
| | | async getuserList() { |
| | | const data = await roleReselectByPageAndCount(this.userlistData); |
| | | if (data.code !== 200) { |
| | | return this.$message.error('ç¨æ·èµæºå表请æ±é误'); |
| | | } |
| | | this.usertableData = data.result; |
| | | this.usercount = data.count; |
| | | }, |
| | | // è§è²è¡¨è¯·æ± |
| | | async getRole() { |
| | | const data = await select_Role_ByPageAndCount(this.listData); |
| | | if (data.code !== 200) { |
| | | return this.$message.error('ç¨æ·è§è²è¯·æ±é误'); |
| | | } |
| | | this.tableData = data.result; |
| | | this.count = data.count; |
| | | if (data.result == null) { |
| | | this.usertableData = []; |
| | | this.usercount = 0; |
| | | } |
| | | }, |
| | | }, |
| | | created() { |
| | | this.getMenuTree(); |
| | | }, |
| | | }; |
| | | </script> |
| | | <style lang="less" scoped> |
| | | //@import url(); å¼å
¥å
Œ
±cssç±» |
| | | .menuSettings_box { |
| | | // background: rgb(240, 242, 245); |
| | | border-radius: 10px; |
| | | height: 100%; |
| | | padding: 10px; |
| | | box-sizing: border-box; |
| | | display: flex; |
| | | .menuSettings_tree { |
| | | position: relative; |
| | | width: 344px; |
| | | height: 100%; |
| | | background: rgb(240, 242, 245); |
| | | padding: 20px; |
| | | border-radius: 10px; |
| | | box-sizing: border-box; |
| | | overflow: auto; |
| | | .saveBtn { |
| | | position: absolute; |
| | | left: 250px; |
| | | top: 23px; |
| | | } |
| | | .menuTreeBox { |
| | | height: 90%; |
| | | overflow: auto; |
| | | .el-tree { |
| | | background: transparent; |
| | | font-size: 15px; |
| | | font-family: Microsoft YaHei; |
| | | font-weight: 400; |
| | | color: #000000; |
| | | // /deep/ .el-tree-node__label { |
| | | // font-size: 18px; |
| | | // } |
| | | /deep/ .el-tree-node { |
| | | padding-top: 10px; |
| | | // padding-bottom: 10px; |
| | | } |
| | | /deep/ .el-tree-node:focus > .el-tree-node__content { |
| | | background-color: #b9b9b9; |
| | | } |
| | | /deep/ .el-tree-node__content:hover { |
| | | background-color: rgb(153, 153, 153); |
| | | } |
| | | .btnBox { |
| | | margin-left: 5px; |
| | | .el-button + .el-button { |
| | | margin-left: 5px; |
| | | } |
| | | } |
| | | } |
| | | } |
| | | } |
| | | .menuSettings { |
| | | width: calc(50% - 172px); |
| | | border-radius: 10px; |
| | | background: rgb(240, 242, 245); |
| | | margin-left: 10px; |
| | | height: 100%; |
| | | padding: 20px; |
| | | box-sizing: border-box; |
| | | .title_box { |
| | | background: #fff; |
| | | padding: 10px; |
| | | margin-bottom: 24px; |
| | | display: flex; |
| | | border-radius: 10px; |
| | | border: 1px solid rgb(202, 201, 204); |
| | | box-sizing: border-box; |
| | | } |
| | | } |
| | | .table_box { |
| | | padding: 10px; |
| | | background: #fff; |
| | | border-radius: 5px; |
| | | border: 1px solid rgb(202, 201, 204); |
| | | overflow: auto; |
| | | height: 85%; |
| | | } |
| | | .divider { |
| | | margin-top: 8px; |
| | | } |
| | | } |
| | | .el-table, |
| | | .el-table /deep/ .el-table__expanded-cell { |
| | | background-color: transparent; |
| | | } |
| | | |
| | | .el-table /deep/ th, |
| | | .el-table /deep/ tr { |
| | | background-color: transparent; |
| | | } |
| | | </style> |