修改权限bug

This commit is contained in:
龙运模 2024-08-28 23:41:22 +08:00
parent e7a8185325
commit 3bb60109a3
7 changed files with 81 additions and 33 deletions

View File

@ -10,7 +10,7 @@
<span class="item part">部分确认</span>
</span>
<emailSync @updateSync="refreshDom" :show="refreshShow" :text="syncText">
<span class="refreshEmail" @click="manualClick"><el-icon size="16px" :class="refreshShow?'refreshEmailIcon':''"><sc-icon-Refresh/></el-icon></span>
<span class="refreshEmail" v-auth="'mailSyncManual'" @click="manualClick"><el-icon size="16px" :class="refreshShow?'refreshEmailIcon':''"><sc-icon-Refresh/></el-icon></span>
</emailSync>
</el-header>
<el-main class="nopadding" v-loading="listLoading" element-loading-text="加载中...">
@ -43,9 +43,9 @@
<div class="rightBtnMain">
<div class="date">{{emailParams.sent_at}}</div>
<div class="btnItem">
<el-button type="primary" plain :size="size" @click="seeEmail">查看原邮件</el-button>
<el-button type="primary" v-auth="'mailBodyInfo'" plain :size="size" @click="seeEmail">查看原邮件</el-button>
<el-dropdown placement="bottom-start">
<el-button type="primary" :size="size" >确认维保 <el-icon class="el-icon--right"><el-icon-ArrowDown/></el-icon></el-button>
<el-button type="primary" v-auth="['repairConfirm']" :size="size">确认维保 <el-icon class="el-icon--right"><el-icon-ArrowDown/></el-icon></el-button>
<template #dropdown>
<el-dropdown-menu>
<el-dropdown-item @click="allDefend('all')">全部入保</el-dropdown-item>

View File

@ -2,23 +2,23 @@
<el-container class="mainBox mainHeaderNoBorderPadding">
<el-header class="header">
<div class="left-panel">
<el-button type="primary" :size="size" icon="el-icon-plus" @click="add">新增工单</el-button>
<el-button type="primary" v-auth="'maintenanceOrderAdd'" :size="size" icon="el-icon-plus" @click="add">新增工单</el-button>
<scImport ref="scImport" :size="size" title="批量导入维保工单" @parentParams="importUpload" @importSuccess="importSuccess">
<template #header>
<el-button v-auth="'organizationImport'" type="primary" :size="size" plain @click="importFile" style="margin-right: 12px;">批量导入</el-button>
<el-button v-auth="'maintenanceOrderImport'" type="primary" :size="size" plain @click="importFile" style="margin-right: 12px;">批量导入</el-button>
</template>
<template #download>
<div v-auth="'companyImportTemplate'" @click="importTemplate">下载导入模版</div>
<div v-auth="'maintenanceOrderImport'" @click="importTemplate">下载导入模版</div>
</template>
</scImport>
<el-button type="primary" plain :size="size" :disabled="selection.length==0" @click="save_maintenance">提交维保</el-button>
<el-button type="success" :size="size" icon="sc-icon-OrderReview" :disabled="selection.length==0" @click="batch_review">批量审核</el-button>
<el-button type="primary" plain :size="size" :disabled="selection.length==0" @click="issued_maintenance">下发维保</el-button>
<el-button type="danger" plain :size="size" icon="el-icon-Delete" :disabled="selection.length==0" @click="batch_del"></el-button>
<el-button type="primary" v-auth="'maintenanceOrderSubmit'" plain :size="size" :disabled="selection.length==0" @click="save_maintenance">提交维保</el-button>
<el-button type="success" v-auth="'maintenanceOrderApproval'" :size="size" icon="sc-icon-OrderReview" :disabled="selection.length==0" @click="batch_review">批量审核</el-button>
<el-button type="primary" v-auth="'maintenanceOrderSend'" plain :size="size" :disabled="selection.length==0" @click="issued_maintenance">下发维保</el-button>
<el-button type="danger" v-auth="'maintenanceOrderDelete'" plain :size="size" icon="el-icon-Delete" :disabled="selection.length==0" @click="batch_del"></el-button>
</div>
<div class="right-panel">
<scExport :size="size" @exportData="exportData" @updateShow="exportChangeShow" :show="exportShow" type="11">
<el-button :size="size" icon="sc-icon-Download" @click="exportData">下载</el-button>
<el-button :size="size" v-auth="'maintenanceOrderExport'" icon="sc-icon-Download" @click="exportData">下载</el-button>
</scExport>
</div>
</el-header>
@ -61,13 +61,27 @@
<el-button class="noBorderBtn" icon="el-icon-more" :size="size"></el-button>
<template #dropdown>
<el-dropdown-menu>
<el-dropdown-item @click="table_edit(scope.row)" icon="sc-icon-Edit">编辑工单</el-dropdown-item>
<el-dropdown-item @click="table_del(scope.row)" icon="sc-icon-Delete">删除工单</el-dropdown-item>
<el-dropdown-item @click="table_review(scope.row)" icon="sc-icon-OrderReview" divided>审核工单</el-dropdown-item>
<el-dropdown-item @click="table_show(scope.row)" icon="sc-icon-See">工单详情</el-dropdown-item>
<el-dropdown-item icon="sc-icon-SaveMaintenance" @click="table_submit(scope.row)" divided>提交维保</el-dropdown-item>
<el-dropdown-item icon="sc-icon-OrderMaintenance" @click="table_send(scope.row)">下发维保</el-dropdown-item>
<el-dropdown-item icon="sc-icon-OrderLog" @click="table_logs(scope.row)" divided>工单日志</el-dropdown-item>
<div v-auth="'maintenanceOrderAdd'">
<el-dropdown-item @click="table_edit(scope.row)" icon="sc-icon-Edit">编辑工单</el-dropdown-item>
</div>
<div v-auth="'maintenanceOrderDelete'">
<el-dropdown-item @click="table_del(scope.row)" icon="sc-icon-Delete">删除工单</el-dropdown-item>
</div>
<div v-auth="'maintenanceOrderApproval'">
<el-dropdown-item @click="table_review(scope.row)" icon="sc-icon-OrderReview" divided>审核工单</el-dropdown-item>
</div>
<div v-auth="'maintenanceOrderDetail'">
<el-dropdown-item @click="table_show(scope.row)" icon="sc-icon-See">工单详情</el-dropdown-item>
</div>
<div v-auth="'maintenanceOrderSubmit'">
<el-dropdown-item icon="sc-icon-SaveMaintenance" @click="table_submit(scope.row)" divided>提交维保</el-dropdown-item>
</div>
<div v-auth="'maintenanceOrderSend'">
<el-dropdown-item icon="sc-icon-OrderMaintenance" @click="table_send(scope.row)">下发维保</el-dropdown-item>
</div>
<div v-auth="'orderLogsList'">
<el-dropdown-item icon="sc-icon-OrderLog" @click="table_logs(scope.row)" divided>工单日志</el-dropdown-item>
</div>
</el-dropdown-menu>
</template>
</el-dropdown>

View File

@ -26,7 +26,7 @@
<div class="leftBox">
<el-icon style="font-size: 26px;"><sc-icon-Excel/></el-icon>
</div>
<div class="rightBox" @click="downFile(emailParams)">
<div class="rightBox" v-auth="'mailAttachmentDownload'" @click="downFile(emailParams)">
<div class="name">{{emailParams.file_name && emailParams.file_name.file}}</div>
<div class="size">
{{emailParams.file_name && emailParams.file_name.size}}

View File

@ -4,16 +4,18 @@
<el-container>
<el-main class="nopadding">
<el-menu class="menu mainMenu" :default-active="page">
<el-menu-item-group v-for="group in menu" :key="group.groupName" :title="group.groupName">
<div v-for="item in group.list" :key="item.component">
<el-menu-item v-authSetup="item.actions" :index="item.component" @click="openPage">
<el-icon v-if="item.icon"><component :is="item.icon"/></el-icon>
<template #title>
<span>{{item.title}}</span>
</template>
</el-menu-item>
</div>
</el-menu-item-group>
<div v-for="group in menu" :key="group.groupName">
<el-menu-item-group v-if="group.show" :title="group.groupName">
<div v-for="item in group.list" :key="item.component">
<el-menu-item v-authSetup="item.actions" :index="item.component" @click="openPage">
<el-icon v-if="item.icon"><component :is="item.icon"/></el-icon>
<template #title>
<span>{{item.title}}</span>
</template>
</el-menu-item>
</div>
</el-menu-item-group>
</div>
</el-menu>
</el-main>
</el-container>
@ -51,12 +53,13 @@ export default {
menu: [
{
groupName: "账号设置",
show:true,
list: [
{
icon: "sc-icon-MachineRoom",
title: "机房配置",
component: "account",
actions:'roomConfig'
actions:'roomConfig',
},
{
icon: "sc-icon-CostAllocation",
@ -68,6 +71,7 @@ export default {
},
{
groupName: "数据管理",
show:true,
list: [
{
icon: "sc-icon-DataSource",
@ -110,6 +114,16 @@ export default {
created() {
const userInfo = this.$TOOL.data.get('USER_INFO');
this.user.role = userInfo.user_roles && userInfo.user_roles.role_names.length>0?userInfo.user_roles.role_names[0]:'';
const permissions = this.$TOOL.data.get("PERMISSIONS");
this.menu.forEach(item=>{
item.show = false;
item.list.forEach(em=>{
if(permissions.auth.indexOf(em.actions)!=-1){
item.show = true;
this.page = item.list[0].component
}
})
})
},
methods: {
openPage(item){

View File

@ -227,6 +227,13 @@ export default {
obj.data_permission.push({[em.meta.code]:list})
}
}
if(em.children && em.children.length>0){
em.children.forEach(daList=>{
if(em.checked || em.isCheck && daList.meta.hidden){
obj.menu_permission.push(daList.meta.code);
}
})
}
})
}
})

View File

@ -42,13 +42,13 @@
</div>
<el-tabs class="role_tabs" tab-position="top" @tab-change="activeClick">
<el-tab-pane label="功能权限">
<dataTree ref="dataTree" :data="menu.list"/>
<dataTree ref="dataTree" v-loading="dataTreeLoading" element-loading-text="加载中..." :data="menu.list"/>
</el-tab-pane>
<el-tab-pane label="数据权限">
</el-tab-pane>
<el-tab-pane label="角色成员">
<members ref="members" :data="roleUser.list" />
<members ref="members" v-loading="roleUserLoading" element-loading-text="加载中..." :data="roleUser.list" />
</el-tab-pane>
</el-tabs>
</el-main>
@ -143,9 +143,11 @@
activeNum:0,
roleCheckList:[],
role_id:"",
dataTreeLoading:false,
menu: {
list: [],
},
roleUserLoading:false,
roleUser:{
list:[]
},
@ -323,6 +325,13 @@
obj.data_permission.push({[em.meta.code]:list})
}
}
if(em.children && em.children.length>0){
em.children.forEach(daList=>{
if(em.checked || em.isCheck && daList.meta.hidden){
obj.menu_permission.push(daList.meta.code);
}
})
}
})
}
})
@ -341,7 +350,9 @@
let params = {
role_id: this.role_id,
};
this.dataTreeLoading = true;
const res = await this.$API.system.role.roleMenu.post(params);
this.dataTreeLoading = false;
this.menu.list = res.data;
}
},
@ -350,7 +361,9 @@
let params = {
role_id: this.role_id,
};
this.roleUserLoading = true;
const res = await this.$API.system.role.roleUser.post(params);
this.roleUserLoading = false;
this.roleUser.list = res.data;
this.userCheckList = res.data;
if(res.data && res.data.length>0){

View File

@ -45,7 +45,7 @@ export default {
},
watch:{
data(val){
if(val && val.length>0){
if(val){
val.forEach(item=>{
item.checked = false;
})