Browse Source

增加全选

qin_26
herenshan112 14 hours ago
parent
commit
78064dca8e
  1. 7
      src/permission.ts
  2. 3
      src/store/modules/permission.ts
  3. 39
      src/views/system/monitor/online/index.vue
  4. 43
      src/views/system/monitor/online/powerPage/appTabsPower.vue

7
src/permission.ts

@ -42,9 +42,10 @@ router.beforeEach(async (to:any, from:any, next:any) => {
} else {
try {
// const { roles } = await userStore.getInfo();
const { perms } = await userStore.getInfo();
// console.log("路由权限---》",perms);
const accessRoutes = await permissionStore.generateRoutes(perms);
const { perms,allPowerConfig } = await userStore.getInfo();
console.log("路由权限---》",perms,allPowerConfig);
// const accessRoutes = await permissionStore.generateRoutes(perms);
const accessRoutes = await permissionStore.generateRoutes(allPowerConfig.menuIdAry);
// console.log("路由权限--perms--》",accessRoutes);
accessRoutes.forEach((route:any) => {
// console.log("路由权限--addRoutecessRoutes",route);

3
src/store/modules/permission.ts

@ -104,7 +104,8 @@ export const usePermissionStore = defineStore("permission", () => {
listRoutes()
.then(({ data: asyncRoutes }) => {
// 根据角色获取有访问权限的路由
// console.log("获取到的路由---->",asyncRoutes);
console.log("获取到的路由---->",asyncRoutes);
console.log("获取到的路由--roles-->",roles);
const accessedRoutes = filterAsyncRoutes(asyncRoutes, roles);
// console.log("获取到的路由--1-->",accessedRoutes);

39
src/views/system/monitor/online/index.vue

@ -571,6 +571,7 @@ onMounted(()=>{
<div class="searchBox">
<el-input v-model="searchQuery" placeholder="请输入要查找的角色" :suffix-icon="Search" @input="onQueryChanged"/>
</div>
<div class="treeBoxClass">
<el-tree-v2
ref="treeRef"
style="max-width: 350px;"
@ -580,6 +581,8 @@ onMounted(()=>{
:height="treeBoxHeight"
:v-loading="roleLoading||grouTabsLoading"
:expand-on-click-node="false"
:highlight-current="true"
class="treebox"
@node-click="pickRoleTree"
>
<template #default="{ node }" >
@ -596,7 +599,7 @@ onMounted(()=>{
<el-dropdown-item v-if="node.disabled">
<el-text size="small" @click.stop="editMyInfoIcon(node.data,1)">禁用</el-text>
</el-dropdown-item>
<el-dropdown-item>
<el-dropdown-item v-else>
<el-text size="small" @click.stop="editMyInfoIcon(node.data,2)">启用</el-text>
</el-dropdown-item>
<el-dropdown-item>
@ -612,6 +615,7 @@ onMounted(()=>{
</div>
</template>
</el-tree-v2>
</div>
</el-tab-pane>
<el-tab-pane label="用户" name="person">
<div class="searchBox">
@ -653,8 +657,9 @@ onMounted(()=>{
border
row-key="id"
>
<el-table-column fixed prop="name" label="目录/菜单" width="380" >
<el-table-column fixed prop="name" label="目录/菜单" min-width="300" >
<template #default="scope">
<el-checkbox v-model="scope.row.isTrue" label="" @click.stop="pickSystemMenuInfo(scope.row)" />
<span class="tree_sapn">{{ scope.row.name }}</span>
<el-tag v-if="scope.row.types === 2" type="warning" size="small">目录</el-tag>
<el-tag v-if="scope.row.types === 1" type="success" size="small">菜单</el-tag>
@ -662,11 +667,11 @@ onMounted(()=>{
<el-tag v-if="scope.row.types === 3" type="info" size="small">外链</el-tag>
</template>
</el-table-column>
<el-table-column prop="isTrue" label="授权" width="80" align="center" >
<!-- <el-table-column prop="isTrue" label="授权" width="80" align="center" >
<template #default="scope">
<el-checkbox v-model="scope.row.isTrue" label="" @click.stop="pickSystemMenuInfo(scope.row)" />
</template>
</el-table-column>
</el-table-column> -->
<el-table-column prop="isTrue" label="操作按钮" min-width="380" align="center" >
<template #default="scope">
@ -739,6 +744,7 @@ onMounted(()=>{
<AddRoleGroup v-if="openRoleGroup" v-model:show="openRoleGroup" :group-info="roleGroupOrInfo" @resthandel="getRoleTree" />
<SetRolePeople v-model:show="setRolePople" :org="orgTree" :role-info="setRoleManInfo" />
<EditRoleGroup v-if="openEditRoleGroup" v-model:show="openEditRoleGroup" :group-info="roleGroupOrInfo" :data="editRoleCont" @resthandel="getRoleTree" />
</div>
</template>
<style lang='scss' scoped>
@ -809,13 +815,11 @@ onMounted(()=>{
justify-content: space-between;
width: 100%;
align-items: center;
height: 40px;
}
.spanButBox{
span{
padding: 0 5px;
}
}
}
.tree_sapn {
padding: 0 10px 0 0;
@ -923,4 +927,19 @@ onMounted(()=>{
overflow: hidden;
overflow-y: auto;
}
.treeBoxClass{
:deep .el-tree--highlight-current
.el-tree-node.is-current
> .el-tree-node__content{
background-color: rgba(135,206,235,0.2);
color: #409eff;
font-size: bold;
}
:deep
.el-tree-node :hover{
background-color: rgba(135,206,235,0.2);
color: #409eff;
font-size: bold;
}
}
</style>

43
src/views/system/monitor/online/powerPage/appTabsPower.vue

@ -206,7 +206,34 @@ const submitPower = () => {
submitLoading.value = false
})
}
/**
@ 作者: 秦东
@ 时间: 2025-12-20 15:33:37
@ 功能: 全选
*/
const pickAllBut = (item:any,types:number) => {
console.log("--全选------------------------>",item,types)
// item.isTrue = !item.isTrue
switch(types){
case 1:
// item.pagePowerIsAll = item.isTrue
item.pagePower = item.pagePowerIsAll ? ["lc","lb","sj","dy","nc"] : []
break
case 2:
// item.formPowerIsAll = item.isTrue
item.formPower = item.formPowerIsAll ? ["zc", "tj", "dy", "sc", "fz"] : []
break
case 3:
// item.listPowerIsAll = item.isTrue
item.listPower = item.listPowerIsAll ? ["newAdd", "import", "export", "sc", "dy", "showQrCode","del","bj"] : []
break
case 4:
// item.isTrue = item.isTrue
item.operationButton = item.isPick ? ["bjapp","scapp","xzfg","scfg","yzfg","xz","bj","sc","yz","jczdh","yysz","yyfb"] : []
break
}
}
</script>
<template>
<div class="app-tabs-content" v-loading="appLoading">
@ -225,7 +252,7 @@ const submitPower = () => {
<el-tab-pane v-for="item in appPowerArt" :label="item.name" :key="item.id" :name="item.id" class="center-content">
<template #label>
<div class="app-tabs-checkbox">
<el-checkbox v-model="item.isTrue" @change="handleGroupChange(item)" /><span>{{item.name}}{{ item.isTrue }}</span>
<el-checkbox v-model="item.isTrue" @change="handleGroupChange(item)" /><span>{{item.name}}</span>
</div>
</template>
@ -241,7 +268,11 @@ const submitPower = () => {
</div>
</template>
<div class="app-form-checkbox">
<div >
<div style="width:100%">
<el-checkbox label="全选" v-model="app.isPick" @change="pickAllBut(app,4)" />
</div>
<div class="app-form-checkbox">
<el-checkbox-group v-model="app.operationButton">
<el-checkbox
v-for="city in appDetailBut"
@ -252,6 +283,7 @@ const submitPower = () => {
{{ city.label }}
</el-checkbox>
</el-checkbox-group>
</div>
</div>
<el-table
:data="app.appMenuTree"
@ -272,6 +304,7 @@ const submitPower = () => {
<el-text>页面权限</el-text>
</template>
<template #default="scope">
<el-checkbox label="全选" v-model="scope.row.pagePowerIsAll" @change="pickAllBut(scope.row,1)" />
<el-checkbox-group v-model="scope.row.pagePower">
<el-checkbox
v-for="city in formBaseBut"
@ -279,7 +312,7 @@ const submitPower = () => {
:label="city.label"
:value="city.value"
>
{{ city.label }}
{{ city.value }} {{ city.label }}
</el-checkbox>
</el-checkbox-group>
</template>
@ -289,6 +322,7 @@ const submitPower = () => {
<el-text>表单权限</el-text>
</template>
<template #default="scope">
<el-checkbox label="全选" v-model="scope.row.formPowerIsAll" @change="pickAllBut(scope.row,2)" />
<el-checkbox-group v-model="scope.row.formPower">
<el-checkbox
v-for="city in appTableBut"
@ -306,6 +340,7 @@ const submitPower = () => {
<el-text>列表权限</el-text>
</template>
<template #default="scope">
<el-checkbox label="全选" v-model="scope.row.listPowerIsAll" @change="pickAllBut(scope.row,3)" />
<el-checkbox-group v-model="scope.row.listPower">
<el-checkbox
v-for="city in appListBut"

Loading…
Cancel
Save