src/api/basicSettings.js
@@ -175,3 +175,30 @@ }) } // è§è²ç®¡çåé ç¨æ·,è·åå·²åé ç¨æ·å表 export function RoleAssignedUserData(data) { return request({ url: 'BasicSetting/RoleAssignedUserData', method: 'get', params: data }) } // export function RoleAssignedUserBatchCancel(data, role_code) { return request({ url: 'BasicSetting/RoleAssignedUserBatchCancel?role_code=' + role_code, method: 'post', data }) } // export function RoleAssignedUserBatchAdd(data, role_code) { return request({ url: 'BasicSetting/RoleAssignedUserBatchAdd?role_code=' + role_code, method: 'post', data }) } src/layout/components/Navbar.vue
@@ -265,11 +265,11 @@ ], created() { // this.$signalr.start() // Vue.prototype.$ButtonData = JSON.parse(localStorage.getItem('ButtonData')) }, mounted() { // this.getHubConnectionBuilder() Vue.prototype.$ButtonData = JSON.parse(localStorage.getItem('ButtonData')) }, computed: { ...mapGetters([ src/layout/components/Sidebar/index.vue
@@ -80,9 +80,9 @@ // console.log(meta, path, 7) // if set path, the sidebar will highlight the path you set removeCookie('ruleCode') setCookie('ruleCode', meta.code)// å°ç¼ç è§åcodeåå°cookieéé¢ Vue.prototype.$buttoncode = meta.buttoncode Vue.prototype.$datacode = meta.datacode setCookie('ruleCode', meta.code) // å°ç¼ç è§åcodeåå°cookieéé¢ // Vue.prototype.$buttoncode = meta.buttoncode // Vue.prototype.$datacode = meta.datacode // setCookie('buttoncode', meta.buttoncode)// æé®æé // setCookie('datacode', meta.datacode)// æ°æ®æé if (meta.activeMenu) { src/router/index.js
@@ -133,6 +133,14 @@ code: '1015', component: () => import('@/views/basicSettings/powerDivider'), meta: { code: '1015', title: 'æéåé ', icon: '', keepAlive: true } }, { path: 'roleDivider', name: 'roleDividerCancel', code: '1016', hidden: true, component: () => import('@/views/basicSettings/roleDivider'), meta: { code: '1016', title: 'è§è²åé ', icon: '', keepAlive: true } } ] src/store/modules/permission.js
@@ -18,7 +18,7 @@ item.children.forEach(it => { if (it.flag === '0') { menuCode.push(it.code) menuNameAndCode.push({ code: it.code, name: it.name, buttoncode: it.buttoncode, datacode: it.datacode }) menuNameAndCode.push({ code: it.code, name: it.name, hidden: it.is_show === 'N', buttoncode: it.buttoncode, datacode: it.datacode }) } }) } @@ -38,6 +38,7 @@ it.meta.title = t.name it.meta.buttoncode = t.buttoncode it.meta.datacode = t.datacode it.hidden = t.hidden children.push(it) flag = true } src/store/modules/user.js
@@ -2,6 +2,7 @@ import { getToken, removeToken, setCookie } from '@/utils/auth' import { resetRouter } from '@/router' import { ButtonData } from '@/api/GeneralBasicData' import Vue from 'vue' const getDefaultState = () => { return { @@ -82,6 +83,8 @@ }).then(res => { if (res.code === '200') { ButtonData().then(res2 => { // localStorage.setItem('buttoncode', res2.data.map(i => i.buttoncode)) Vue.prototype.$buttoncode = res2.data.map(i => i.buttoncode) localStorage.setItem('ButtonData', JSON.stringify(res2.data)) }) src/styles/global.css
@@ -27,25 +27,27 @@ background: #f8f8fa; } .el-table__body-wrapper{ .el-table__body-wrapper { background: #f8f8fa; } .el-table__body .el-table__row.hover-row td { background-color: #eaecef !important; } .body .el-input__inner{ .body .el-input__inner { height: 34px !important; } .el-dialog__body{ padding:50px 80px !important; .el-dialog__body { padding: 50px 80px !important; } .el-dialog__body .el-input__inner{ .el-dialog__body .el-input__inner { height: 34px !important; } .el-icon-delete,.el-icon-edit-outline{ .el-icon-delete, .el-icon-edit-outline { cursor: pointer; margin-right: 15px; } @@ -56,11 +58,10 @@ align-items: center; } .el-message-box__btns{ .el-message-box__btns { display: flex; justify-content: flex-end; } /*头鍿é®ç»æ ·å¼*/ @@ -99,11 +100,11 @@ /*cursor: pointer;*/ } .bodyTopFormExpand:hover{ .bodyTopFormExpand:hover { color: #00ff8b !important; } .svg-icon:hover{ .svg-icon:hover { color: #00ff8b !important; /*background-color: #00ff8b !important;*/ } @@ -114,8 +115,12 @@ /*justify-content: space-between;*/ /*justify-content: space-around;*/ width: 100%; height:50px; /*min-height:42px !important;*/ flex-wrap: wrap; } .elForm .el-form-item { margin-bottom: 0 !important; } .elTableDiv { @@ -158,9 +163,8 @@ } .el-button{ height: 34px ; .el-button { height: 34px; display: flex !important; align-items: center; justify-content: center; @@ -206,9 +210,10 @@ /*è§£å³åºå®æ»å¨æ¡é«ä½åç´ å·®*/ .el-table__fixed::before{ .el-table__fixed::before { height: 0 !important; } .el-table__fixed-right::before{ .el-table__fixed-right::before { height: 0 !important; } src/views/basicSettings/groupList.vue
@@ -29,7 +29,24 @@ <el-button v-waves type="info" icon="el-icon-refresh" @click="reset">éç½®</el-button> </div> </el-form> <div class="bodyTopFormExpand" style="height:5px" > <!-- <svg-icon--> <!-- v-show="mouseHoverType==='mouseout'"--> <!-- style="cursor: pointer"--> <!-- :icon-class="!isExpandForm?'doubleDown3':'doubleUp3'"--> <!-- @mouseenter="mouseHoverType=$event.type"--> <!-- />--> <!-- <svg-icon--> <!-- v-show="mouseHoverType==='mouseenter'"--> <!-- style="cursor: pointer"--> <!-- :icon-class="!isExpandForm?'doubleDown':'doubleUp'"--> <!-- @click="isExpandForm=!isExpandForm"--> <!-- @mouseout="mouseHoverType=$event.type"--> <!-- />--> </div> </div> <div class="elTableDiv"> src/views/basicSettings/organizationList.vue
@@ -29,7 +29,24 @@ <el-button v-waves type="info" icon="el-icon-refresh" @click="reset">éç½®</el-button> </div> </el-form> <div class="bodyTopFormExpand" style="height:5px" > <!-- <svg-icon--> <!-- v-show="mouseHoverType==='mouseout'"--> <!-- style="cursor: pointer"--> <!-- :icon-class="!isExpandForm?'doubleDown3':'doubleUp3'"--> <!-- @mouseenter="mouseHoverType=$event.type"--> <!-- />--> <!-- <svg-icon--> <!-- v-show="mouseHoverType==='mouseenter'"--> <!-- style="cursor: pointer"--> <!-- :icon-class="!isExpandForm?'doubleDown':'doubleUp'"--> <!-- @click="isExpandForm=!isExpandForm"--> <!-- @mouseout="mouseHoverType=$event.type"--> <!-- />--> </div> </div> <div class="elTableDiv"> src/views/basicSettings/personList.vue
@@ -23,7 +23,7 @@ <el-tree ref="treeLeftRef" style="padding: 10px;overflow: auto;" :style="{height:(tableHeight+140)+'px'}" :style="{height:(tableHeight+180)+'px'}" :data="treeLeft" node-key="torg_code" highlight-current @@ -55,6 +55,25 @@ <el-form-item label="ç¨æ·åç§°" style=" display: flex;"> <el-input v-model="form.username" placeholder="请è¾å ¥" style="width: 200px" /> </el-form-item> <el-form-item label="ç¨æ·ç¼ç " style=" display: flex;"> <el-input v-model="form.usercode" placeholder="请è¾å ¥" style="width: 200px" /> </el-form-item> <el-form-item v-show="isExpandForm" label="ç¨æ·åç§°" style=" display: flex;"> <el-input v-model="form.username" placeholder="请è¾å ¥" style="width: 200px" /> </el-form-item> <el-form-item v-show="isExpandForm" label="ç¨æ·ç¼ç " style=" display: flex;"> <el-input v-model="form.usercode" placeholder="请è¾å ¥" style="width: 200px" /> </el-form-item> <el-form-item v-show="isExpandForm" label="ç¨æ·åç§°" style=" display: flex;"> <el-input v-model="form.username" placeholder="请è¾å ¥" style="width: 200px" /> </el-form-item> <el-form-item v-show="isExpandForm" label="ç¨æ·ç¼ç " style=" display: flex;"> <el-input v-model="form.usercode" placeholder="请è¾å ¥" style="width: 200px" /> </el-form-item> <el-form-item v-show="isExpandForm" label="ç¨æ·åç§°" style=" display: flex;"> <el-input v-model="form.username" placeholder="请è¾å ¥" style="width: 200px" /> </el-form-item> </div> <div class="bodySearchReset" @@ -64,7 +83,23 @@ <el-button v-waves type="info" icon="el-icon-refresh" @click="reset">éç½®</el-button> </div> </el-form> <div class="bodyTopFormExpand" > <svg-icon v-show="mouseHoverType==='mouseout'" style="cursor: pointer" :icon-class="!isExpandForm?'doubleDown3':'doubleUp3'" @mouseenter="mouseHoverType=$event.type" /> <svg-icon v-show="mouseHoverType==='mouseenter'" style="cursor: pointer" :icon-class="!isExpandForm?'doubleDown':'doubleUp'" @click="isExpandForm=!isExpandForm" @mouseout="mouseHoverType=$event.type" /> </div> </div> <div class="elTableDiv"> @@ -72,10 +107,10 @@ ref="tableDataRef" class="tableFixed" :data="tableData" :height="tableHeight+'px'" :height="isExpandForm?tableHeight:(tableHeight+80)+'px'" border row-class-name="custom-row" :style="{width: 100+'%',height:tableHeight+'px',}" :style="{width: 100+'%',height:isExpandForm?tableHeight:(tableHeight+80)+'px',}" highlight-current-row :header-cell-style="this.$headerCellStyle" :cell-style="this.$cellStyle" @@ -154,7 +189,16 @@ </template> </el-table-column> <el-table-column prop="username" prop="group_name" label="çç»" sortable="custom" > <template slot-scope="{row}"> {{ row.group_name ? row.group_name : '/' }} </template> </el-table-column> <el-table-column prop="createusername" label="å建人å" sortable="custom" /> @@ -381,6 +425,8 @@ } } return { mouseHoverType: 'mouseout', isExpandForm: false, mainHeight: 0, tableHeight: 0, form: { @@ -602,7 +648,6 @@ handleClose() { this.dialogForm.usercode = '' this.dialogForm.username = '' this.dialogForm.storg_code = '' this.dialogForm.status = 'Y' this.dialogForm.post_code = [] @@ -611,6 +656,8 @@ this.dialogForm.password = '123456' this.dialogForm.mobile = '' this.dialogForm.email = '' // this.dialogForm.storg_code = '' this.$refs.cascader.checkedValue = '' this.$refs.dialogForm.clearValidate() @@ -646,7 +693,7 @@ getHeight() { this.$nextTick(() => { this.mainHeight = window.innerHeight - 85 this.tableHeight = this.mainHeight - 200 this.tableHeight = this.mainHeight - 295 this.$refs.tableDataRef.doLayout() }) } src/views/basicSettings/postList.vue
@@ -29,7 +29,24 @@ <el-button v-waves type="info" icon="el-icon-refresh" @click="reset">éç½®</el-button> </div> </el-form> <div class="bodyTopFormExpand" style="height:5px" > <!-- <svg-icon--> <!-- v-show="mouseHoverType==='mouseout'"--> <!-- style="cursor: pointer"--> <!-- :icon-class="!isExpandForm?'doubleDown3':'doubleUp3'"--> <!-- @mouseenter="mouseHoverType=$event.type"--> <!-- />--> <!-- <svg-icon--> <!-- v-show="mouseHoverType==='mouseenter'"--> <!-- style="cursor: pointer"--> <!-- :icon-class="!isExpandForm?'doubleDown':'doubleUp'"--> <!-- @click="isExpandForm=!isExpandForm"--> <!-- @mouseout="mouseHoverType=$event.type"--> <!-- />--> </div> </div> <div class="elTableDiv"> @@ -42,8 +59,6 @@ row-class-name="custom-row" :style="{width: 100+'%',height:tableHeight+'px',}" highlight-current-row row-key="torg_code" default-expand-all :header-cell-style="this.$headerCellStyle" :cell-style="this.$cellStyle" @sort-change="sortChange" @@ -78,7 +93,11 @@ prop="description" label="æè¿°" sortable="custom" /> > <template slot-scope="{row}"> {{ row.description?row.description:'/' }} </template> </el-table-column> <el-table-column prop="username" label="å建人å" src/views/basicSettings/powerDivider.vue
@@ -180,12 +180,15 @@ allButtonData: [], // ææèå对åºçæé®æéå æ°æ®æé isScroll: 'left' isScroll: 'left', ButtonData: JSON.parse(localStorage.getItem('ButtonData')) } }, created() { }, mounted() { window.addEventListener('resize', this.getHeight) @@ -200,14 +203,19 @@ const { data: res } = await RolePermissionSearchRole() this.treeLeft = res let rolecode = '' if (window.location.hash.indexOf('?') !== -1) { rolecode = window.location.hash.split('?')[1].split('=')[1] } if (res && res.length > 0) { this.$nextTick(() => { // é»è®¤éä¸ç¬¬ä¸ä¸ª this.$refs.treeLeftRef.setCurrentKey(res[0].code) // é»è®¤éä¸èç¹ç¬¬ä¸ä¸ª this.$refs.treeLeftRef.setCurrentKey(rolecode || res[0].code) // é»è®¤éä¸èç¹ç¬¬ä¸ä¸ª }) await this.getRolePermissionSearchRoleMenuButton(res[0].code)// ç¨äºæ°æ®åæ¾ await this.getRolePermissionSearchRoleMenuButton(rolecode || res[0].code)// ç¨äºæ°æ®åæ¾ await this.getRolePermissionSearchRoleMenu(res[0].code)// ç¨äºæ¸²æé¡µé¢ await this.getRolePermissionSearchRoleMenu(rolecode || res[0].code)// ç¨äºæ¸²æé¡µé¢ } else { this.$notify.error('请å 建ç¸å¯¹åºçè§è²ï¼') } @@ -238,7 +246,7 @@ item.children.forEach(it => { it.buttoncodelist = it.buttoncodelist !== '' && it.buttoncodelist !== null ? it.buttoncodelist.split(',') : [] if (it.buttoncodelist && it.buttoncodelist.length > 0) { it.buttoncodelist = this.$ButtonData.filter(j => it.buttoncodelist = this.ButtonData.filter(j => it.buttoncodelist.includes(j.buttoncode) ) @@ -265,7 +273,7 @@ let temp = this.allButtonData.filter(j => j.menucode === it.menucode).length > 0 ? this.allButtonData.filter(j => j.menucode === it.menucode)[0].buttoncode : [] temp = temp.length > 0 ? temp.split(',') : [] it.buttonChecked = [] // æ°æ®åæ¾ this.$ButtonData.forEach(j => { this.ButtonData.forEach(j => { if (temp.includes(j.buttoncode)) { it.buttonChecked.push(j.buttonname) } @@ -419,7 +427,7 @@ item.children.forEach(it => { if (menuKeyArr.includes(it.menucode)) { if (it.buttonChecked && it.buttonChecked.length > 0) { // å·²éèå it.buttonCheckedCode = this.$ButtonData.filter(i => it.buttonCheckedCode = this.ButtonData.filter(i => it.buttonChecked.includes(i.buttonname) ).map(i => i.buttoncode) } src/views/basicSettings/roleDivider.vue
¶Ô±ÈÐÂÎļþ @@ -0,0 +1,541 @@ <template> <div> <div class="body" :style="{height:mainHeight+'px'}"> <div class="bodyTopButtonGroup"> <el-button v-waves type="primary" icon="el-icon-circle-plus-outline" @click="add('add')">æ°å¢</el-button> <el-button v-waves type="danger" icon="el-icon-error" @click="batchCancel">æ¹éåæ¶ææ</el-button> <!-- <el-button v-waves type="warning" icon="el-icon-close">å ³é</el-button>--> </div> <div class="bodyTopFormGroup"> <el-form ref="form" :model="form" label-width="100px" inline style="display: flex;" > <div class="elForm"> <el-form-item label="è§è²ç¼ç " style=" display: flex;"> <el-select v-model="form.role_code" style="width:200px" placeholder="è¯·éæ©" @change="roleChange" > <el-option v-for="item in roleArr" :key="item.rolecode" :label="item.rolename" :value="item.rolecode" /> </el-select> </el-form-item> <el-form-item label="ç¨æ·ç¼ç " style=" display: flex;"> <el-input v-model="form.usercode" placeholder="请è¾å ¥" style="width: 200px" /> </el-form-item> <el-form-item label="ç¨æ·åç§°" style=" display: flex;"> <el-input v-model="form.username" placeholder="请è¾å ¥" style="width: 200px" /> </el-form-item> <el-form-item label="ç»ç»ç¼ç " style=" display: flex;"> <el-cascader ref="cascader" v-model="form.storg_code" :options="cascaderOptions" filterable :props="defaultProps" :show-all-levels="false" /> </el-form-item> <el-form-item v-show="isExpandForm" label="å²ä½åç§°" style=" display: flex;"> <el-select v-model="form.post_code" style="width:200px" multiple collapse-tags placeholder="è¯·éæ©" > <el-option v-for="item in postArr" :key="item.postcode" :label="item.postname" :value="item.postcode" /> </el-select> </el-form-item> <el-form-item v-show="isExpandForm" label="çç»ç¼ç " style=" display: flex;"> <el-select v-model="form.group_code" style="width:200px" multiple collapse-tags placeholder="è¯·éæ©" > <el-option v-for="item in groupArr" :key="item.usergroupcode" :label="item.usergroupname" :value="item.usergroupcode" /> </el-select> </el-form-item> </div> <div class="bodySearchReset" :style="{marginLeft:$store.state.app.sidebar.opened? $store.state.settings.menuIsHorizontal?'15%':'3%':'10%'}" > <el-button v-waves type="primary" icon="el-icon-search" @click="getRoleAssignedUserData">æ¥è¯¢</el-button> <el-button v-waves type="info" icon="el-icon-refresh" @click="reset">éç½®</el-button> </div> </el-form> <div class="bodyTopFormExpand" > <svg-icon v-show="mouseHoverType==='mouseout'" style="cursor: pointer" :icon-class="!isExpandForm?'doubleDown3':'doubleUp3'" @mouseenter="mouseHoverType=$event.type" /> <svg-icon v-show="mouseHoverType==='mouseenter'" style="cursor: pointer" :icon-class="!isExpandForm?'doubleDown':'doubleUp'" @click="isExpandForm=!isExpandForm" @mouseout="mouseHoverType=$event.type" /> </div> </div> <div class="elTableDiv"> <el-table ref="tableDataRef" class="tableFixed" :data="tableData" :height="isExpandForm?tableHeight:(tableHeight+40)+'px'" border row-class-name="custom-row" :style="{width: 100+'%',height:isExpandForm?tableHeight:(tableHeight+40)+'px',}" highlight-current-row :row-key="getRowKey" :header-cell-style="this.$headerCellStyle" :cell-style="this.$cellStyle" @selection-change="handleSelectionChange" @sort-change="sortChange" > <el-table-column type="selection" width="50" :reserve-selection="true" fixed /> <el-table-column prop="rowNum" width="50" fixed label="åºå·" /> <el-table-column prop="usercode" label="ç¨æ·ç¼ç " sortable="custom" /> <el-table-column prop="username" label="ç¨æ·åç§°" sortable="custom" /> <el-table-column prop="storg_name" label="æå±ç»ç»" sortable="custom" /> <el-table-column prop="rolename" label="è§è²" sortable="custom" > <template slot-scope="{row}"> {{ row.rolename ? row.rolename : '/' }} </template> </el-table-column> <el-table-column prop="postname" label="å²ä½" sortable="custom" > <template slot-scope="{row}"> {{ row.postname ? row.postname : '/' }} </template> </el-table-column> <el-table-column prop="group_name" label="çç»" sortable="custom" > <template slot-scope="{row}"> {{ row.group_name ? row.group_name : '/' }} </template> </el-table-column> <el-table-column label="æä½" width="200" fixed="right" > <template slot-scope="{row}"> <div class="operationClass"> <el-button type="text" style="cursor: pointer;font-size: 14px" @click="cancel(row.usercode)" >åæ¶ææ </el-button> </div> </template> </el-table-column> </el-table> </div> <!--å页--> <pagination :total="total" :page.sync="form.page" :limit.sync="form.rows" align="right" layout="total,prev, pager, next,sizes,jumper" popper-class="select_bottom" @pagination="getRoleAssignedUserData" /> </div> <el-dialog v-el-drag-dialog title="æ°å¢" :visible.sync="dialogVisible" width="800px" :close-on-click-modal="false" top="15vh" @closed="handleClose" @close="handleClose" > <div> <el-table ref="tableDataDialogRef" class="tableFixed" :data="tableDataDialog" height="400" border :style="{width: 100+'%',height:'400px',}" highlight-current-row :row-key="getRowKey" :header-cell-style="this.$headerCellStyle" :cell-style="this.$cellStyle" @selection-change="handleDialogSelectionChange" > <el-table-column type="selection" width="50" :reserve-selection="true" fixed /> <el-table-column prop="rowNum" width="50" fixed label="åºå·" /> <el-table-column prop="usercode" label="ç¨æ·ç¼ç " /> <el-table-column prop="username" label="ç¨æ·åç§°" /> <el-table-column prop="storg_name" label="æå±ç»ç»" /> <el-table-column prop="rolename" label="è§è²" > <template slot-scope="{row}"> {{ row.rolename?row.rolename:'/' }} </template> </el-table-column> <el-table-column prop="postname" label="å²ä½" > <template slot-scope="{row}"> {{ row.postname?row.postname:'/' }} </template> </el-table-column> <el-table-column prop="group_name" label="çç»" > <template slot-scope="{row}"> {{ row.group_name?row.group_name:'/' }} </template> </el-table-column> </el-table> <!--å页--> <pagination :total="totalDialog" :page.sync="dialogForm.page" :limit.sync="dialogForm.rows" align="right" style="margin-top: 10px;" layout="total,prev, pager, next,sizes,jumper" popper-class="select_bottom" @pagination="add" /> </div> <span slot="footer" class="dialog-footer"> <div class="footerButton"> <el-button v-waves @click="dialogVisibleCancel" >å æ¶</el-button> <el-button v-waves type="primary" :loading="$store.state.app.buttonIsDisabled" :disabled="$store.state.app.buttonIsDisabled" @click="dialogVisibleConfirm" >ç¡® å®</el-button> </div> </span> </el-dialog> </div> </template> <script> import Pagination from '@/components/Pagination' import { AddUpdatePost, RoleAssignedUserBatchAdd, RoleAssignedUserBatchCancel, RoleAssignedUserData } from '@/api/basicSettings' import { validateCode } from '@/utils/global' import elDragDialog from '@/directive/el-drag-dialog' import waves from '@/directive/waves' import arrayToTree from 'array-to-tree' import { GroupsPermissions, PostPermissions, PrentOrganization, RolePermissions } from '@/api/GeneralBasicData' export default { name: 'Zzjg', components: { Pagination }, directives: { elDragDialog, waves }, data() { return { mouseHoverType: 'mouseout', isExpandForm: false, mainHeight: 0, tableHeight: 0, form: { flag: 'TRUE', // TRUE(å·²å ³è) FALSE(æªå ³è) role_code: '', // è§è²ç¼ç usercode: '', // ç¨æ·ç¼ç username: '', // ç¨æ·åç§° storg_code: [], // post_code: [], // group_code: [], // prop: 'lm_date', // æåºå段 order: 'desc', // æåºå段 page: 1, // 第å 页 rows: 20 // æ¯é¡µå¤å°æ¡ }, total: 10, tableData: [], cascaderOptions: [], defaultProps: { checkStrictly: true, expandTrigger: 'hover', value: 'torg_code', label: 'torg_name' }, roleArr: [], postArr: [], groupArr: [], dialogVisible: false, dialogForm: { page: 1, // 第å 页 rows: 20 // æ¯é¡µå¤å°æ¡ }, tableDataDialog: [], totalDialog: 10, batchRoleCode: [], batchDialogRoleCode: [] } }, created() { }, mounted() { window.addEventListener('resize', this.getHeight) this.getHeight() this.getAllSelectData() this.getPrentOrganization() }, methods: { // ç»ç»æ¶æå¤§å表æ¥è¯¢ async getRoleAssignedUserData() { if (!this.form.role_code) { this.form.role_code = this.roleArr[0].rolecode } this.form.storg_code = this.form.storg_code ? this.form.storg_code[this.form.storg_code.length - 1] : '' this.form.post_code = this.form.post_code ? this.form.post_code.join(',') : '' this.form.group_code = this.form.group_code ? this.form.group_code.join(',') : '' const res = await RoleAssignedUserData(this.form) this.tableData = res.data this.total = res.count }, async getPrentOrganization() { const { data: res } = await PrentOrganization() this.cascaderOptions = arrayToTree(res, { parentProperty: 'parent_id', customID: 'torg_code', childrenProperty: 'children' }) }, // å²ä½ è§è² çç» async getAllSelectData() { const { data: res2 } = await RolePermissions() this.roleArr = res2 await this.getRoleAssignedUserData() const { data: res1 } = await PostPermissions() this.postArr = res1 const { data: res3 } = await GroupsPermissions() this.groupArr = res3 }, // æåºæ¹åæ¶ sortChange({ column, prop, order }) { if (order === 'descending') { order = 'desc' } else if (order === 'ascending') { order = 'asc' } else { order = 'desc' } this.form.order = order this.form.prop = prop this.getRoleAssignedUserData() }, // éç½® reset() { this.form.usercode = '' this.form.username = '' this.form.storg_code = [] this.form.post_code = [] this.form.group_code = [] this.getRoleAssignedUserData() }, roleChange(val) { this.getRoleAssignedUserData() this.batchRoleCode = [] this.$refs.tableDataRef.clearSelection() }, async cancel(code) { const res = await RoleAssignedUserBatchCancel([code], this.form.role_code) if (res.code === '200') { this.$notify.success('åæ¶æææåï¼') await this.getRoleAssignedUserData() } else { this.$notify.error('åæ¶ææå¤±è´¥ï¼') } }, async batchCancel() { const res = await RoleAssignedUserBatchCancel(this.batchRoleCode, this.form.role_code) if (res.code === '200') { this.$notify.success(this.batchRoleCode.length + 'ä¸ªç¨æ·åæ¶æææåï¼') await this.getRoleAssignedUserData() this.batchRoleCode = [] this.$refs.tableDataRef.clearSelection() } else { this.$notify.error(this.batchRoleCode.length + 'ä¸ªç¨æ·åæ¶ææå¤±è´¥ï¼') } }, // æ°å¢æé® async add() { this.dialogVisible = true const data = { flag: 'FALSE', // TRUE(å·²å ³è) FALSE(æªå ³è) role_code: this.form.role_code, // è§è²ç¼ç usercode: '', // ç¨æ·ç¼ç username: '', // ç¨æ·åç§° storg_code: '', // post_code: '', // group_code: '', // prop: 'lm_date', // æåºå段 order: 'desc', // æåºå段 page: this.dialogForm.page, // 第å 页 rows: this.dialogForm.rows // æ¯é¡µå¤å°æ¡ } const res = await RoleAssignedUserData(data) this.tableDataDialog = res.data this.totalDialog = res.count }, // å¯¹è¯æ¡å ³éäºä»¶ handleClose() { // this.form.flag = 'TRUE' }, getRowKey(row) { return row.usercode }, handleSelectionChange(rows) { this.batchRoleCode = rows.map(i => i.usercode) }, handleDialogSelectionChange(rows) { this.batchDialogRoleCode = rows.map(i => i.usercode) }, // å¯¹è¯æ¡åæ¶ dialogVisibleCancel() { this.dialogVisible = false }, // å¯¹è¯æ¡ç¡®è®¤ async dialogVisibleConfirm() { const res = await RoleAssignedUserBatchAdd(this.batchDialogRoleCode, this.form.role_code) if (res.code === '200') { this.$notify.success(this.batchDialogRoleCode.length + 'ä¸ªç¨æ·æ°å¢æææåï¼') await this.getRoleAssignedUserData() this.batchDialogRoleCode = [] this.$refs.tableDataDialogRef.clearSelection() this.dialogVisible = false } else { this.$notify.error(this.batchDialogRoleCode.length + 'ä¸ªç¨æ·æ°å¢ææå¤±è´¥ï¼') } }, // è·å页é¢é«åº¦ getHeight() { this.$nextTick(() => { this.mainHeight = window.innerHeight - 85 this.tableHeight = this.mainHeight - 255 this.$refs.tableDataRef.doLayout() }) } } } </script> src/views/basicSettings/roleList.vue
@@ -29,7 +29,24 @@ <el-button v-waves type="info" icon="el-icon-refresh" @click="reset">éç½®</el-button> </div> </el-form> <div class="bodyTopFormExpand" style="height:5px" > <!-- <svg-icon--> <!-- v-show="mouseHoverType==='mouseout'"--> <!-- style="cursor: pointer"--> <!-- :icon-class="!isExpandForm?'doubleDown3':'doubleUp3'"--> <!-- @mouseenter="mouseHoverType=$event.type"--> <!-- />--> <!-- <svg-icon--> <!-- v-show="mouseHoverType==='mouseenter'"--> <!-- style="cursor: pointer"--> <!-- :icon-class="!isExpandForm?'doubleDown':'doubleUp'"--> <!-- @click="isExpandForm=!isExpandForm"--> <!-- @mouseout="mouseHoverType=$event.type"--> <!-- />--> </div> </div> <div class="elTableDiv"> @@ -81,7 +98,11 @@ prop="description" label="夿³¨" sortable="custom" /> > <template slot-scope="{row}"> {{ row.description?row.description:'/' }} </template> </el-table-column> <el-table-column prop="username" label="å建人å" @@ -131,7 +152,7 @@ <el-dropdown-menu slot="dropdown"> <el-dropdown-item icon="el-icon-circle-check" command="menuPower">èåæé</el-dropdown-item> <el-dropdown-item icon="el-icon-user" command="divideUser">åé ç¨æ·</el-dropdown-item> <el-dropdown-item icon="el-icon-download" command="downloadMenu">导åºèå</el-dropdown-item> <!-- <el-dropdown-item icon="el-icon-download" command="downloadMenu">导åºèå</el-dropdown-item>--> </el-dropdown-menu> </el-dropdown> </div> @@ -439,7 +460,10 @@ handleCommand(command, row) { console.log(command, row) if (command === 'menuPower') { this.$router.push('./roleList?powerId=' + row.id)// demo this.$router.push('./powerDivider?rolecode=' + row.rolecode) } if (command === 'divideUser') { this.$router.push('./roleDivider?rolecode=' + row.rolecode) } }, // è·å页é¢é«åº¦ src/views/systemSetting/encodingRules.vue
@@ -36,6 +36,24 @@ <el-button v-waves type="info" icon="el-icon-refresh" @click="reset">éç½®</el-button> </div> </el-form> <div class="bodyTopFormExpand" style="height:5px" > <!-- <svg-icon--> <!-- v-show="mouseHoverType==='mouseout'"--> <!-- style="cursor: pointer"--> <!-- :icon-class="!isExpandForm?'doubleDown3':'doubleUp3'"--> <!-- @mouseenter="mouseHoverType=$event.type"--> <!-- />--> <!-- <svg-icon--> <!-- v-show="mouseHoverType==='mouseenter'"--> <!-- style="cursor: pointer"--> <!-- :icon-class="!isExpandForm?'doubleDown':'doubleUp'"--> <!-- @click="isExpandForm=!isExpandForm"--> <!-- @mouseout="mouseHoverType=$event.type"--> <!-- />--> </div> </div> <div class="elTableDiv"> @@ -308,7 +326,6 @@ this.getHeight() this.getCodeMenuSelect() console.log(this.$buttoncode) }, methods: { async getCodeMenuSelect() {