86 lines
2.6 KiB
Java
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

<template>
<BasicDrawer v-bind="$attrs" @register="registerDrawer" title="数据规则配置" width="450px" destroyOnClose>
<a-tabs defaultActiveKey="1">
<a-tab-pane tab="数据规则" key="1">
<a-checkbox-group v-model:value="dataRuleChecked" v-if="dataRuleList.length > 0">
<a-row>
<a-col :span="24" v-for="(item, index) in dataRuleList" :key="'dr' + index">
<a-checkbox :value="item.id">{{ item.ruleName }}</a-checkbox>
</a-col>
<a-col :span="24">
<div style="width: 100%; margin-top: 15px">
<a-button @click="saveDataRuleForRole" type="primary" size="small"> <Icon icon="ant-design:save-outlined"></Icon>点击保存</a-button>
</div>
</a-col>
</a-row>
</a-checkbox-group>
<div v-else><h3>无配置信息!</h3></div>
</a-tab-pane>
</a-tabs>
</BasicDrawer>
</template>
<script lang="ts" setup>
import { ref, unref } from 'vue';
import { BasicDrawer, useDrawerInner } from '/src/components/Drawer';
import { useMessage } from '/src/hooks/web/useMessage';
import { queryDataRule, saveDataRule } from '../role.api';
// 声明Emits
const emit = defineEmits(['success', 'register']);
const { createMessage } = useMessage();
// 声明数据
const functionId = ref('');
const roleId = ref('');
const dataRuleList = ref([]);
const dataRuleChecked = ref([]);
/**
* 数据
*/
const [registerDrawer, { setDrawerProps, closeDrawer }] = useDrawerInner(async (data) => {
await reset();
setDrawerProps({ confirmLoading: false });
//权限的id
functionId.value = data.functionId;
//角色的id
roleId.value = data.roleId;
//查询数据
const res = await queryDataRule({ functionId: unref(functionId), roleId: unref(roleId) });
if (res.success) {
dataRuleList.value = res.result.datarule;
if (res.result.drChecked) {
dataRuleChecked.value = res.result.drChecked.split(',');
}
}
});
/**
* 重置
*/
function reset() {
functionId.value = '';
roleId.value = '';
dataRuleList.value = [];
dataRuleChecked.value = [];
}
/**
* 提交
*/
async function saveDataRuleForRole() {
if (!unref(dataRuleChecked) || unref(dataRuleChecked).length == 0) {
createMessage.warning('请注意现未勾选任何数据权限!');
}
let params = {
permissionId: unref(functionId),
roleId: unref(roleId),
dataRuleIds: unref(dataRuleChecked).join(','),
};
await saveDataRule(params);
//关闭弹窗
closeDrawer();
//刷新列表
emit('success');
}
</script>