16 changed files with 2325 additions and 643 deletions
|
After Width: | Height: | Size: 873 B |
|
After Width: | Height: | Size: 670 B |
File diff suppressed because it is too large
File diff suppressed because it is too large
@ -0,0 +1,409 @@ |
|||||
|
<!-- |
||||
|
@ 作者: 秦东 |
||||
|
@ 时间: 2025-12-17 16:53:07 |
||||
|
@ 备注: |
||||
|
--> |
||||
|
<script lang='ts' setup> |
||||
|
import { appTableBut, appListBut,appDetailBut,formBaseBut,appGroupBut } from "@/utils/workflow/const"; |
||||
|
import { orgInfo } from '@/api/displayboardapi/types'; |
||||
|
import { appInitAuthorization,tabsAuthorizationMode } from "@/api/system/roleapi/postrole"; |
||||
|
import type { TabsPaneContext } from 'element-plus' |
||||
|
|
||||
|
const props = defineProps({ |
||||
|
appType: { |
||||
|
type: String, |
||||
|
default: "app" |
||||
|
}, |
||||
|
powerType: { |
||||
|
type: String, |
||||
|
default: "" |
||||
|
}, |
||||
|
roleId: { |
||||
|
type: String, |
||||
|
default: "" |
||||
|
}, |
||||
|
orgTree: { |
||||
|
type: Array as PropType<orgInfo[]>, |
||||
|
default: () => [] |
||||
|
} |
||||
|
}) |
||||
|
const appLoading = ref(false) |
||||
|
const submitLoading = ref(false) |
||||
|
const appPowerArt = ref<any>([]) |
||||
|
const appGroupButAry = ref<string[]>([]) |
||||
|
const powerActiveName = reactive({ |
||||
|
group:"", |
||||
|
app:"" |
||||
|
}) |
||||
|
const systemMenuTreePropsing = { |
||||
|
children: "child", |
||||
|
label: "name", |
||||
|
value: "id", |
||||
|
}; |
||||
|
/** |
||||
|
@ 作者: 秦东 |
||||
|
@ 时间: 2025-05-13 14:20:47 |
||||
|
@ 功能: 获取自定义App |
||||
|
*/ |
||||
|
|
||||
|
const getAppList = () => { |
||||
|
appLoading.value=true |
||||
|
appPowerArt.value = [] |
||||
|
appGroupButAry.value = [] |
||||
|
appInitAuthorization({appType:"app",powerType:props.powerType,roleId:props.roleId}).then((data: any) => { |
||||
|
console.log("获取自定义App", data); |
||||
|
// appList.value = data.data; |
||||
|
appPowerArt.value = data.data.appList |
||||
|
appGroupButAry.value = data.data.groupButPower |
||||
|
appLoading.value=false |
||||
|
if(data.data.appList && Array.isArray(data.data.appList)){ |
||||
|
powerActiveName.group = data.data.appList[0].id |
||||
|
if(data.data.appList[0].appList && Array.isArray(data.data.appList[0].appList)){ |
||||
|
powerActiveName.app = data.data.appList[0].appList[0].id |
||||
|
} |
||||
|
} |
||||
|
}).finally(()=>{ |
||||
|
appLoading.value=false |
||||
|
submitLoading.value = false |
||||
|
}) |
||||
|
}; |
||||
|
/** |
||||
|
@ 作者: 秦东 |
||||
|
@ 时间: 2025-12-18 10:17:07 |
||||
|
@ 功能: 标签被选择 |
||||
|
*/ |
||||
|
const handleTabClick = (val:any) => { |
||||
|
|
||||
|
if(appPowerArt.value && Array.isArray(appPowerArt.value)){ |
||||
|
appPowerArt.value.find((item:any) => { |
||||
|
if(item.id === powerActiveName.group){ |
||||
|
powerActiveName.app = item.appList[0].id |
||||
|
} |
||||
|
}) |
||||
|
|
||||
|
// powerActiveName.app = appPowerArt.value.find((item:any) => item.id === powerActiveName.group)?.appList[0].id |
||||
|
} |
||||
|
|
||||
|
} |
||||
|
/** |
||||
|
@ 作者: 秦东 |
||||
|
@ 时间: 2025-12-18 11:14:56 |
||||
|
@ 功能: 选择分组 |
||||
|
*/ |
||||
|
const handleGroupChange = (item:any) => { |
||||
|
console.log("-------------------------->",item) |
||||
|
// if(item.isTrue){ |
||||
|
if(item.appList && Array.isArray(item.appList)){ |
||||
|
item.appList.find((app:any) => { |
||||
|
app.isTrue = item.isTrue |
||||
|
if(item.isTrue){ |
||||
|
app.operationButton = ["bjapp","scapp","xzfg","scfg","yzfg","xz","bj","sc","yz","jczdh","yysz","yyfb"] |
||||
|
}else{ |
||||
|
app.operationButton = [] |
||||
|
} |
||||
|
if(app.appMenuTree && Array.isArray(app.appMenuTree)){ |
||||
|
app.appMenuTree = handleAppChange(app.appMenuTree,item.isTrue) |
||||
|
} |
||||
|
}) |
||||
|
} |
||||
|
// } |
||||
|
} |
||||
|
/** |
||||
|
@ 作者: 秦东 |
||||
|
@ 时间: 2025-12-18 11:23:40 |
||||
|
@ 功能: 循环递归联动赋值 |
||||
|
*/ |
||||
|
const handleAppChange = (item:any,isTrue:boolean) => { |
||||
|
// console.log("--------循环递归联动赋值------------------>",item) |
||||
|
if(item && Array.isArray(item)){ |
||||
|
item.forEach((menu:any) => { |
||||
|
menu.isTrue = isTrue |
||||
|
if(isTrue){ |
||||
|
menu.formPower = [ "zc", "tj", "dy", "sc", "fz"] |
||||
|
menu.listPower = [ "newAdd", "import", "export", "sc", "dy", "showQrCode","del","bj"] |
||||
|
}else{ |
||||
|
menu.formPower = [] |
||||
|
menu.listPower = [] |
||||
|
} |
||||
|
if(menu.children && Array.isArray(menu.children)){ |
||||
|
menu.children = handleAppChange(menu.children,isTrue) |
||||
|
} |
||||
|
}) |
||||
|
} |
||||
|
|
||||
|
return item |
||||
|
} |
||||
|
/** |
||||
|
@ 作者: 秦东 |
||||
|
@ 时间: 2025-12-18 13:48:26 |
||||
|
@ 功能: 选择App |
||||
|
*/ |
||||
|
const handleAppPowerChange = (item:any) => { |
||||
|
console.log("----------------选择App---------->",item) |
||||
|
if(item.isTrue){ |
||||
|
item.operationButton = ["bjapp","scapp","xzfg","scfg","yzfg","xz","bj","sc","yz","jczdh","yysz","yyfb"] |
||||
|
}else{ |
||||
|
item.operationButton = [] |
||||
|
} |
||||
|
if(item.appMenuTree && Array.isArray(item.appMenuTree)){ |
||||
|
item.appMenuTree = handleAppChange(item.appMenuTree,item.isTrue) |
||||
|
} |
||||
|
} |
||||
|
/** |
||||
|
@ 作者: 秦东 |
||||
|
@ 时间: 2025-12-18 13:58:21 |
||||
|
@ 功能: 选择App菜单是选中状态下,关联操作按钮 |
||||
|
*/ |
||||
|
const handleAppMenuChange = (item:any) => { |
||||
|
// console.log("----------------选择App菜单---------->",item) |
||||
|
if(item.isTrue){ |
||||
|
item.formPower = [ "zc", "tj", "dy", "sc", "fz"] |
||||
|
item.listPower = [ "newAdd", "import", "export", "sc", "dy", "showQrCode","del","bj"] |
||||
|
}else{ |
||||
|
item.formPower = [] |
||||
|
item.listPower = [] |
||||
|
} |
||||
|
if(item.children && Array.isArray(item.children)){ |
||||
|
item.children = handleAppChange(item.children,item.isTrue) |
||||
|
} |
||||
|
} |
||||
|
onMounted(()=>{ |
||||
|
// getAppList() |
||||
|
}) |
||||
|
defineExpose({ |
||||
|
getAppList |
||||
|
}) |
||||
|
/** |
||||
|
@ 作者: 秦东 |
||||
|
@ 时间: 2025-12-18 14:16:49 |
||||
|
@ 功能: 提交授权 |
||||
|
*/ |
||||
|
const submitPower = () => { |
||||
|
submitLoading.value = true |
||||
|
let sendData:any = { |
||||
|
appType:"app", |
||||
|
powerType:props.powerType, |
||||
|
roleId:props.roleId, |
||||
|
listPower:appPowerArt.value, |
||||
|
groupPower:appGroupButAry.value |
||||
|
} |
||||
|
if(!props.roleId || props.roleId === ""){ |
||||
|
ElMessage.error("具体授权属性!") |
||||
|
submitLoading.value = false |
||||
|
return |
||||
|
} |
||||
|
console.log("----------------提交授权---------->",sendData) |
||||
|
// submitLoading.value = true |
||||
|
tabsAuthorizationMode(sendData).then((data: any) => { |
||||
|
if(data.code === 0){ |
||||
|
ElMessage.success("授权成功!") |
||||
|
submitLoading.value = false |
||||
|
}else{ |
||||
|
ElMessage.error(data.msg) |
||||
|
} |
||||
|
}).catch((err: any) => { |
||||
|
ElMessage.error(err.message) |
||||
|
submitLoading.value = false |
||||
|
}) |
||||
|
} |
||||
|
|
||||
|
</script> |
||||
|
<template> |
||||
|
<div class="app-tabs-content" v-loading="appLoading"> |
||||
|
<el-checkbox-group v-model="appGroupButAry"> |
||||
|
<el-checkbox |
||||
|
v-for="city in appGroupBut" |
||||
|
:key="city.key" |
||||
|
:label="city.label" |
||||
|
:value="city.value" |
||||
|
> |
||||
|
{{ city.label }} |
||||
|
</el-checkbox> |
||||
|
</el-checkbox-group> |
||||
|
|
||||
|
<el-tabs v-model="powerActiveName.group" @tab-change="handleTabClick" class="demo-tabs " > |
||||
|
<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> |
||||
|
</div> |
||||
|
|
||||
|
</template> |
||||
|
<!--应用--> |
||||
|
|
||||
|
|
||||
|
|
||||
|
<el-tabs v-model="powerActiveName.app" class="demo-tabs left_hight" tab-position="left"> |
||||
|
<el-tab-pane v-for="app in item.appList" :label="app.name" :key="app.id" :name="app.id" class="center-content"> |
||||
|
<template #label> |
||||
|
<div class="app-tabs-checkbox"> |
||||
|
<el-checkbox v-model="app.isTrue" @change="handleAppPowerChange(app)" /><span>{{app.name}}</span> |
||||
|
</div> |
||||
|
</template> |
||||
|
|
||||
|
<div class="app-form-checkbox"> |
||||
|
<el-checkbox-group v-model="app.operationButton"> |
||||
|
<el-checkbox |
||||
|
v-for="city in appDetailBut" |
||||
|
:key="city.key" |
||||
|
:label="city.label" |
||||
|
:value="city.value" |
||||
|
> |
||||
|
{{ city.label }} |
||||
|
</el-checkbox> |
||||
|
</el-checkbox-group> |
||||
|
</div> |
||||
|
<el-table |
||||
|
:data="app.appMenuTree" |
||||
|
style="width: 100%;" |
||||
|
class="tableScrollbar" |
||||
|
row-key="id" |
||||
|
border |
||||
|
default-expand-all |
||||
|
> |
||||
|
<el-table-column prop="name" label="栏目名称" > |
||||
|
<template #default="scope"> |
||||
|
<el-checkbox v-model="scope.row.isTrue" :value="scope.row.isTrue" @change="handleAppMenuChange(scope.row)" ></el-checkbox> |
||||
|
{{ scope.row.name }} |
||||
|
</template> |
||||
|
</el-table-column> |
||||
|
<el-table-column prop="pagePower" label="页面权力" > |
||||
|
<template #header> |
||||
|
<el-text>页面权限</el-text> |
||||
|
</template> |
||||
|
<template #default="scope"> |
||||
|
<el-checkbox-group v-model="scope.row.pagePower"> |
||||
|
<el-checkbox |
||||
|
v-for="city in formBaseBut" |
||||
|
:key="city.key" |
||||
|
:label="city.label" |
||||
|
:value="city.value" |
||||
|
> |
||||
|
{{ city.label }} |
||||
|
</el-checkbox> |
||||
|
</el-checkbox-group> |
||||
|
</template> |
||||
|
</el-table-column> |
||||
|
<el-table-column prop="formPower" label="表单权限" > |
||||
|
<template #header> |
||||
|
<el-text>表单权限</el-text> |
||||
|
</template> |
||||
|
<template #default="scope"> |
||||
|
<el-checkbox-group v-model="scope.row.formPower"> |
||||
|
<el-checkbox |
||||
|
v-for="city in appTableBut" |
||||
|
:key="city.value" |
||||
|
:label="city.label" |
||||
|
:value="city.value" |
||||
|
> |
||||
|
{{ city.label }} |
||||
|
</el-checkbox> |
||||
|
</el-checkbox-group> |
||||
|
</template> |
||||
|
</el-table-column> |
||||
|
<el-table-column prop="listPower" label="listPower" > |
||||
|
<template #header> |
||||
|
<el-text>列表权限</el-text> |
||||
|
</template> |
||||
|
<template #default="scope"> |
||||
|
<el-checkbox-group v-model="scope.row.listPower"> |
||||
|
<el-checkbox |
||||
|
v-for="city in appListBut" |
||||
|
:key="city.key" |
||||
|
:label="city.label" |
||||
|
:value="city.value" |
||||
|
> |
||||
|
{{ city.label }} |
||||
|
</el-checkbox> |
||||
|
</el-checkbox-group> |
||||
|
</template> |
||||
|
</el-table-column> |
||||
|
<el-table-column prop="visibleRange" label="数据权限" > |
||||
|
<template #header> |
||||
|
<el-text>数据权限</el-text> |
||||
|
</template> |
||||
|
<template #default="scope"> |
||||
|
<el-radio-group |
||||
|
v-model="scope.row.visibleRange.types" |
||||
|
> |
||||
|
<el-row> |
||||
|
<el-col :span="24"><el-radio :value="1">本人</el-radio></el-col> |
||||
|
<el-col :span="24"><el-radio :value="2">本岗位</el-radio></el-col> |
||||
|
<el-col :span="24"><el-radio :value="3">本部门</el-radio></el-col> |
||||
|
<el-col :span="24"><el-radio :value="4">本分部</el-radio></el-col> |
||||
|
<el-col :span="24"> |
||||
|
<el-radio :value="5">指定行政组织</el-radio> |
||||
|
<el-tree-select |
||||
|
v-if="scope.row.visibleRange.types == 5" |
||||
|
v-model="scope.row.visibleRange.attribute" |
||||
|
:data="orgTree" |
||||
|
style="width: 100%" |
||||
|
node-key="id" |
||||
|
:props="systemMenuTreePropsing" |
||||
|
clearable |
||||
|
multiple |
||||
|
:render-after-expand="false" |
||||
|
show-checkbox |
||||
|
collapse-tags |
||||
|
collapse-tags-tooltip |
||||
|
/> |
||||
|
</el-col> |
||||
|
<el-col :span="24"><el-radio :value="6">所有</el-radio></el-col> |
||||
|
</el-row> |
||||
|
</el-radio-group> |
||||
|
</template> |
||||
|
</el-table-column> |
||||
|
|
||||
|
</el-table> |
||||
|
|
||||
|
</el-tab-pane> |
||||
|
</el-tabs> |
||||
|
</el-tab-pane> |
||||
|
<el-affix position="bottom" :offset="100" style="margin-left: 250px;"> |
||||
|
<el-button v-loading="submitLoading" type="primary" @click="submitPower">确定授权</el-button> |
||||
|
</el-affix> |
||||
|
</el-tabs> |
||||
|
|
||||
|
</div> |
||||
|
</template> |
||||
|
<style lang='scss' scoped> |
||||
|
.app-tabs-content { |
||||
|
|
||||
|
width: 100%; |
||||
|
:deep .el-tabs__content{ |
||||
|
padding: 0; |
||||
|
} |
||||
|
.app-form-checkbox{ |
||||
|
width: 200px; |
||||
|
display: grid; |
||||
|
grid-template-columns: repeat(2, 1fr); |
||||
|
grid-gap: 10px; |
||||
|
} |
||||
|
} |
||||
|
|
||||
|
.app-tabs-checkbox{ |
||||
|
width: 100%; |
||||
|
text-align: left; |
||||
|
padding: 0 10px; |
||||
|
display: flex; |
||||
|
align-items: center; |
||||
|
span{ |
||||
|
margin-left: 5px; |
||||
|
} |
||||
|
} |
||||
|
.center-content { |
||||
|
display: flex; |
||||
|
justify-content: space-between; |
||||
|
height: 100%; /* 根据需要设置高度 */ |
||||
|
padding: 0px; |
||||
|
} |
||||
|
.tableScrollbar{ |
||||
|
width: 100%; |
||||
|
height: calc(100vh - 365px); |
||||
|
overflow: hidden; |
||||
|
overflow-y: auto; |
||||
|
} |
||||
|
.left_hight{ |
||||
|
height: calc(100vh - 350px); |
||||
|
} |
||||
|
</style> |
||||
@ -0,0 +1,249 @@ |
|||||
|
<!-- |
||||
|
@ 作者: 秦东 |
||||
|
@ 时间: 2025-12-17 16:40:42 |
||||
|
@ 备注: app授权布局 |
||||
|
--> |
||||
|
<script lang='ts' setup> |
||||
|
import { appTableBut, appListBut,appDetailBut,formBaseBut,appGroupBut } from "@/utils/workflow/const"; |
||||
|
import { appInitAuthorization,gainAppTableListNew,getPowerPageUser,systemAppAuthorization,gainAppEmpowerPower } from "@/api/system/roleapi/postrole"; |
||||
|
import { orgInfo } from "@/api/displayboardapi/types"; |
||||
|
|
||||
|
const props = defineProps({ |
||||
|
appType: { |
||||
|
type: String, |
||||
|
default: "" |
||||
|
}, |
||||
|
powerType: { |
||||
|
type: String, |
||||
|
default: "" |
||||
|
}, |
||||
|
roleId: { |
||||
|
type: String, |
||||
|
default: "" |
||||
|
} |
||||
|
}) |
||||
|
const orgTree = ref<orgInfo[]>([]) //行政组织树 |
||||
|
const appLoading = ref(false) |
||||
|
const grouTabsLoading = ref(false) |
||||
|
const appSystemConfig = ref<any[]>([]) |
||||
|
const appGroupButAry = ref<string[]>([]) |
||||
|
const appPowerArt = ref<any>([]) |
||||
|
const appFormButConfig = ref<any[]>([]) |
||||
|
|
||||
|
const systemMenuTreePropsing = { |
||||
|
children: "child", |
||||
|
label: "name", |
||||
|
value: "id", |
||||
|
}; |
||||
|
/** |
||||
|
@ 作者: 秦东 |
||||
|
@ 时间: 2025-05-13 14:20:47 |
||||
|
@ 功能: 获取自定义App |
||||
|
*/ |
||||
|
|
||||
|
const getAppList = () => { |
||||
|
grouTabsLoading.value=true |
||||
|
appInitAuthorization({appType:props.appType,powerType:props.powerType,roleId:props.roleId}).then((data: any) => { |
||||
|
console.log("获取自定义App", data); |
||||
|
// appList.value = data.data; |
||||
|
appPowerArt.value = data.data.appList |
||||
|
appGroupButAry.value = data.data.groupButton |
||||
|
// if (data.data && data.data.length > 0) { |
||||
|
// if (data.data[0] && data.data[0].signCode) { |
||||
|
// activeAppId.value = data.data[0].signCode; |
||||
|
|
||||
|
// } |
||||
|
// } |
||||
|
// console.log("获取自定义App", activeAppId.value); |
||||
|
grouTabsLoading.value=false |
||||
|
}).finally(()=>{ |
||||
|
appLoading.value=false |
||||
|
}) |
||||
|
}; |
||||
|
const pickAppTableList = (val: any) =>{ |
||||
|
|
||||
|
} |
||||
|
</script> |
||||
|
<template> |
||||
|
<el-scrollbar class="tableScrollbar" v-loading="appLoading"> |
||||
|
<table class="table_body"> |
||||
|
<thead> |
||||
|
<tr> |
||||
|
<th align="center" width="10%">分组权限</th> |
||||
|
<th align="center" width="10%">应用分组</th> |
||||
|
</tr> |
||||
|
</thead> |
||||
|
<tbody> |
||||
|
<tr > |
||||
|
<td width="10%" valign="top"> |
||||
|
<el-checkbox-group v-model="appSystemConfig"> |
||||
|
<el-checkbox |
||||
|
v-for="city in appGroupBut" |
||||
|
:key="city.key" |
||||
|
:label="city.label" |
||||
|
:value="city.value" |
||||
|
> |
||||
|
{{ city.label }} |
||||
|
</el-checkbox> |
||||
|
</el-checkbox-group> |
||||
|
</td> |
||||
|
<td align="center" width="90%" valign="top"> |
||||
|
<table class="table_body"> |
||||
|
|
||||
|
<tbody> |
||||
|
<tr v-for="item in appPowerArt" :key="item.id"> |
||||
|
<td align="center" width="10%" valign="top"> |
||||
|
<el-checkbox @click.stop="pickAppTableList(item)" v-model="item.isTrue" :value="item.isTrue" ></el-checkbox> |
||||
|
{{ item.name }} |
||||
|
</td> |
||||
|
<td align="center" width="90%" valign="top"> |
||||
|
<table class="table_body"> |
||||
|
<thead> |
||||
|
<tr> |
||||
|
<th align="center" width="10%">应用</th> |
||||
|
<th align="center" width="10%">应用操作按钮</th> |
||||
|
<th align="center" width="80%">应用栏目</th> |
||||
|
</tr> |
||||
|
</thead> |
||||
|
<tbody> |
||||
|
<tr v-for="itemApp in item.appList" :key="itemApp.id"> |
||||
|
<td align="center" width="10%" valign="top"> |
||||
|
<el-checkbox @click.stop="pickAppTableList(itemApp)" v-model="itemApp.isTrue" :value="itemApp.isTrue" ></el-checkbox> |
||||
|
{{ itemApp.name }} |
||||
|
</td> |
||||
|
<td align="left" width="10%" valign="top"> |
||||
|
<el-checkbox-group v-model="appFormButConfig"> |
||||
|
<el-checkbox |
||||
|
v-for="city in appDetailBut" |
||||
|
:key="city.key" |
||||
|
:label="city.label" |
||||
|
:value="city.value" |
||||
|
> |
||||
|
{{ city.label }} |
||||
|
</el-checkbox> |
||||
|
</el-checkbox-group> |
||||
|
</td> |
||||
|
<td align="center" width="80%" valign="top"> |
||||
|
<el-table |
||||
|
:data="itemApp.appMenuTree" |
||||
|
style="width: 100%; margin-bottom: 20px" |
||||
|
row-key="id" |
||||
|
border |
||||
|
default-expand-all |
||||
|
> |
||||
|
<el-table-column prop="name" label="栏目名称" > |
||||
|
<template #default="scope"> |
||||
|
<el-checkbox @click.stop="pickAppTableList(scope.row)" v-model="scope.row.isTrue" :value="scope.row.isTrue" ></el-checkbox> |
||||
|
{{ scope.row.name }} |
||||
|
</template> |
||||
|
</el-table-column> |
||||
|
<el-table-column prop="pagePower" label="页面权力" > |
||||
|
<template #header> |
||||
|
<el-text>页面权力</el-text> |
||||
|
</template> |
||||
|
<template #default="scope"> |
||||
|
<el-checkbox-group v-model="scope.pagePower"> |
||||
|
<el-checkbox |
||||
|
v-for="city in formBaseBut" |
||||
|
:key="city.key" |
||||
|
:label="city.label" |
||||
|
:value="city.value" |
||||
|
> |
||||
|
{{ city.label }} |
||||
|
</el-checkbox> |
||||
|
</el-checkbox-group> |
||||
|
</template> |
||||
|
</el-table-column> |
||||
|
<el-table-column prop="formPower" label="表单权限" > |
||||
|
<template #header> |
||||
|
<el-text>表单权限</el-text> |
||||
|
</template> |
||||
|
<template #default="scope"> |
||||
|
<el-checkbox-group v-model="scope.formPower"> |
||||
|
<el-checkbox |
||||
|
v-for="city in formBaseBut" |
||||
|
:key="city.key" |
||||
|
:label="city.label" |
||||
|
:value="city.value" |
||||
|
> |
||||
|
{{ city.label }} |
||||
|
</el-checkbox> |
||||
|
</el-checkbox-group> |
||||
|
</template> |
||||
|
</el-table-column> |
||||
|
<el-table-column prop="listPower" label="listPower" > |
||||
|
<template #header> |
||||
|
<el-text>列表权限</el-text> |
||||
|
</template> |
||||
|
<template #default="scope"> |
||||
|
<el-checkbox-group v-model="scope.listPower"> |
||||
|
<el-checkbox |
||||
|
v-for="city in formBaseBut" |
||||
|
:key="city.key" |
||||
|
:label="city.label" |
||||
|
:value="city.value" |
||||
|
> |
||||
|
{{ city.label }} |
||||
|
</el-checkbox> |
||||
|
</el-checkbox-group> |
||||
|
</template> |
||||
|
</el-table-column> |
||||
|
<el-table-column prop="visibleRange" label="数据权限" > |
||||
|
<template #header> |
||||
|
<el-text>数据权限</el-text> |
||||
|
</template> |
||||
|
<template #default="scope"> |
||||
|
<el-radio-group |
||||
|
v-model="scope.row.visibleRange.types" |
||||
|
> |
||||
|
<el-row> |
||||
|
<el-col :span="24"><el-radio :value="1">本人</el-radio></el-col> |
||||
|
<el-col :span="24"><el-radio :value="2">本岗位</el-radio></el-col> |
||||
|
<el-col :span="24"><el-radio :value="3">本部门</el-radio></el-col> |
||||
|
<el-col :span="24"><el-radio :value="4">本分部</el-radio></el-col> |
||||
|
<el-col :span="24"> |
||||
|
<el-radio :value="5">指定行政组织</el-radio> |
||||
|
<el-tree-select |
||||
|
v-if="scope.row.visibleRange.types == 5" |
||||
|
v-model="scope.row.visibleRange.attribute" |
||||
|
:data="orgTree" |
||||
|
style="width: 100%" |
||||
|
node-key="id" |
||||
|
:props="systemMenuTreePropsing" |
||||
|
clearable |
||||
|
multiple |
||||
|
:render-after-expand="false" |
||||
|
show-checkbox |
||||
|
collapse-tags |
||||
|
collapse-tags-tooltip |
||||
|
/> |
||||
|
</el-col> |
||||
|
<el-col :span="24"><el-radio :value="6">所有</el-radio></el-col> |
||||
|
</el-row> |
||||
|
</el-radio-group> |
||||
|
</template> |
||||
|
</el-table-column> |
||||
|
</el-table> |
||||
|
</td> |
||||
|
</tr> |
||||
|
</tbody> |
||||
|
</table> |
||||
|
</td> |
||||
|
</tr> |
||||
|
</tbody> |
||||
|
</table> |
||||
|
|
||||
|
</td> |
||||
|
</tr> |
||||
|
</tbody> |
||||
|
</table> |
||||
|
</el-scrollbar> |
||||
|
</template> |
||||
|
<style lang='scss' scoped> |
||||
|
.tableScrollbar{ |
||||
|
width: 100%; |
||||
|
height: calc(100vh - 260px); |
||||
|
overflow: hidden; |
||||
|
overflow-y: auto; |
||||
|
} |
||||
|
</style> |
||||
Loading…
Reference in new issue