|
|
|
|
@@ -29,7 +29,7 @@
|
|
|
|
|
:label="btn.value">
|
|
|
|
|
<div class="btn-item">
|
|
|
|
|
{{ btn.data_range !== null ? `${btn.name}(${formatDataRange(btn.data_range)})` : btn.name }}
|
|
|
|
|
<span v-show="btn.isCheck" @click.stop.prevent="handleSettingClick(menu, btn.id)">
|
|
|
|
|
<span v-show="btn.isCheck" @click.stop.prevent="handleSettingClick(menu, btn)">
|
|
|
|
|
<el-icon>
|
|
|
|
|
<Setting />
|
|
|
|
|
</el-icon>
|
|
|
|
|
@@ -124,6 +124,7 @@ watch(
|
|
|
|
|
(val) => {
|
|
|
|
|
drawerVisible.value = val;
|
|
|
|
|
getMenuBtnPermission()
|
|
|
|
|
getDataPermissionRangeLable()
|
|
|
|
|
|
|
|
|
|
}
|
|
|
|
|
);
|
|
|
|
|
@@ -144,9 +145,10 @@ let menuCurrent = ref<Partial<MenuDataType>>({});
|
|
|
|
|
let menuBtnCurrent = ref<number>(-1);
|
|
|
|
|
let dialogVisible = ref(false);
|
|
|
|
|
let dataPermissionRange = ref<DataPermissionRangeType[]>([]);
|
|
|
|
|
let dataPermissionRangeLabel = ref<DataPermissionRangeType[]>([]);
|
|
|
|
|
const formatDataRange = computed(() => {
|
|
|
|
|
return function (datarange: number) {
|
|
|
|
|
const findItem = dataPermissionRange.value.find((i) => i.value === datarange);
|
|
|
|
|
const findItem = dataPermissionRangeLabel.value.find((i) => i.value === datarange);
|
|
|
|
|
return findItem?.label || ''
|
|
|
|
|
}
|
|
|
|
|
})
|
|
|
|
|
@@ -158,8 +160,13 @@ const getMenuBtnPermission = async () => {
|
|
|
|
|
const resMenu = await getRolePremission({ role: props.roleId })
|
|
|
|
|
menuData.value = resMenu.data
|
|
|
|
|
}
|
|
|
|
|
// 获取按钮的数据权限下拉选项
|
|
|
|
|
const getDataPermissionRangeLable = async () => {
|
|
|
|
|
const resRange = await getDataPermissionRange({ role: props.roleId })
|
|
|
|
|
dataPermissionRangeLabel.value = resRange.data;
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
const fetchData = async (btnId) => {
|
|
|
|
|
const fetchData = async (btnId:number) => {
|
|
|
|
|
try {
|
|
|
|
|
const resRange = await getDataPermissionRange({menu_button:btnId});
|
|
|
|
|
if (resRange?.code === 2000) {
|
|
|
|
|
@@ -170,20 +177,22 @@ const fetchData = async (btnId) => {
|
|
|
|
|
}
|
|
|
|
|
};
|
|
|
|
|
|
|
|
|
|
const handleCollapseChange = (val: number) => {
|
|
|
|
|
collapseCurrent.value = [val];
|
|
|
|
|
};
|
|
|
|
|
// const handleCollapseChange = (val: number) => {
|
|
|
|
|
// collapseCurrent.value = [val];
|
|
|
|
|
// };
|
|
|
|
|
|
|
|
|
|
/**
|
|
|
|
|
* 设置按钮数据权限
|
|
|
|
|
* @param record 当前菜单
|
|
|
|
|
* @param btnType 按钮类型
|
|
|
|
|
*/
|
|
|
|
|
const handleSettingClick = (record: MenusType, btnId: number) => {
|
|
|
|
|
const handleSettingClick = (record: MenusType, btn: MenusType['btns'][number]) => {
|
|
|
|
|
menuCurrent.value = record;
|
|
|
|
|
menuBtnCurrent.value = btnId;
|
|
|
|
|
menuBtnCurrent.value = btn.id;
|
|
|
|
|
dialogVisible.value = true;
|
|
|
|
|
fetchData(btnId)
|
|
|
|
|
dataPermission.value =btn.data_range;
|
|
|
|
|
handlePermissionRangeChange(btn.data_range)
|
|
|
|
|
fetchData( btn.id)
|
|
|
|
|
};
|
|
|
|
|
|
|
|
|
|
const handleColumnChange = (val: boolean, record: MenusType, btnType: string) => {
|
|
|
|
|
@@ -194,9 +203,10 @@ const handleColumnChange = (val: boolean, record: MenusType, btnType: string) =>
|
|
|
|
|
|
|
|
|
|
const handlePermissionRangeChange = async (val: number) => {
|
|
|
|
|
if (val === 4) {
|
|
|
|
|
const res = await getDataPermissionDept();
|
|
|
|
|
const data = XEUtils.toArrayTree(res.data, { parentKey: 'parent', strict: false });
|
|
|
|
|
deptData.value = data;
|
|
|
|
|
const res = await getDataPermissionDept({ role: props.roleId,menu_button:menuBtnCurrent.value });
|
|
|
|
|
const depts = XEUtils.toArrayTree(res.data.depts, { parentKey: 'parent', strict: false });
|
|
|
|
|
deptData.value = depts;
|
|
|
|
|
customDataPermission.value = res.data.dept_checked;
|
|
|
|
|
}
|
|
|
|
|
};
|
|
|
|
|
|
|
|
|
|
|