<template> <a-drawer title="数据规则/按钮权限配置" width="365" :closable="false" @close="onClose" :visible="visible" > <a-tabs defaultActiveKey="1"> <a-tab-pane tab="数据规则" key="1"> <a-checkbox-group v-model="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="save">点击保存</a-button> </div> </a-col> </a-row> </a-checkbox-group> <div v-else><h3>无配置信息!</h3></div> </a-tab-pane> <!--<a-tab-pane tab="按钮权限" key="2">敬请期待!!!</a-tab-pane>--> </a-tabs> </a-drawer> </template> <script> import ARow from 'ant-design-vue/es/grid/Row' import ACol from 'ant-design-vue/es/grid/Col' import {getAction, postAction} from '@/api/manage' export default { name: 'DeptRoleDataruleModal', components: {ACol, ARow}, data() { return { departId: '', functionId: '', roleId: '', visible: false, tabList: [{ key: '1', tab: '数据规则', }, { key: '2', tab: '按钮权限', }], activeTabKey: '1', url: { datarule: "/sys/sysDepartRole/datarule", }, dataruleList: [], dataruleChecked: [] } }, methods: { loadData() { getAction(`${this.url.datarule}/${this.functionId}/${this.departId}/${this.roleId}`).then(res => { console.log(res) if (res.success) { this.dataruleList = res.result.datarule let drChecked = res.result.drChecked if (drChecked) { this.dataruleChecked = drChecked.split(",") } } }) }, saveDataruleForRole() { if (!this.dataruleChecked || this.dataruleChecked.length == 0) { this.$message.warning("请注意,现未勾选任何数据权限!") } let params = { permissionId: this.functionId, roleId: this.roleId, dataRuleIds: this.dataruleChecked.join(",") } console.log("保存数据权限", params) postAction(this.url.datarule, params).then(res => { if (res.success) { this.$message.success(res.message) } else { this.$message.error(res.message) } }) }, show(functionId, departId, roleId) { this.onReset() this.departId = departId this.functionId = functionId this.roleId = roleId this.visible = true this.loadData() }, onClose() { this.visible = false this.onReset() }, onTabChange(key) { this.activeTabKey = key }, onReset() { this.functionId = '' this.roleId = '' this.dataruleList = [] this.dataruleChecked = [] } } } </script> <style scoped> </style>