|
|
@@ -1,11 +1,24 @@
|
|
|
<template>
|
|
|
- <a-modal width="50%" v-model:visible="visible" :title="$t('permission.account.user_permission')" okText="关闭"
|
|
|
- hide-cancel="true" @ok="handleOk">
|
|
|
- <div :style="{ 'display': 'flex', 'flex-direction': 'column' }">
|
|
|
+ <a-modal
|
|
|
+ width="50%"
|
|
|
+ v-model:visible="visible"
|
|
|
+ :title="$t('permission.account.user_permission')"
|
|
|
+ okText="关闭"
|
|
|
+ hide-cancel="true"
|
|
|
+ @ok="handleOk"
|
|
|
+ >
|
|
|
+ <div :style="{ display: 'flex', 'flex-direction': 'column' }">
|
|
|
<a-card class="card-body" hoverable>
|
|
|
- <div class="title-box"><icon-menu size="18" />{{ $t('permission.account.menu_function') }}:</div>
|
|
|
+ <div class="title-box" style="justify-content: space-between">
|
|
|
+ <div><icon-menu size="18" />{{ $t('permission.account.menu_function') }}:</div>
|
|
|
+ <a-radio-group v-model="menu_active_type" type="button" size="small">
|
|
|
+ <a-radio v-for="(item, index) in radio_list" :key="item.value" :value="item.value">{{
|
|
|
+ item.title
|
|
|
+ }}</a-radio>
|
|
|
+ </a-radio-group>
|
|
|
+ </div>
|
|
|
<a-space wrap>
|
|
|
- <a-tag v-for="item in menu_permissions_list" :key="item.id">
|
|
|
+ <a-tag v-for="item in menu_permissions_list_computed" :key="item.id">
|
|
|
{{ item.name }}
|
|
|
</a-tag>
|
|
|
</a-space>
|
|
|
@@ -32,36 +45,46 @@
|
|
|
</template>
|
|
|
|
|
|
<script setup>
|
|
|
-import { toRefs } from 'vue';
|
|
|
+import { toRefs, ref, computed } from 'vue';
|
|
|
// 定义Props,接收外部传入的数据
|
|
|
const props = defineProps({
|
|
|
visible: Boolean,
|
|
|
menu_permissions_list: {
|
|
|
- type: Array,
|
|
|
+ type: Array
|
|
|
},
|
|
|
knowledge_permissions_list: {
|
|
|
- type: Array,
|
|
|
+ type: Array
|
|
|
},
|
|
|
dialog_permissions_list: {
|
|
|
- type: Array,
|
|
|
+ type: Array
|
|
|
},
|
|
|
agent_permissions_list: {
|
|
|
- type: Array,
|
|
|
- },
|
|
|
+ type: Array
|
|
|
+ }
|
|
|
});
|
|
|
|
|
|
-const { visible,
|
|
|
- menu_permissions_list,
|
|
|
- knowledge_permissions_list,
|
|
|
- dialog_permissions_list,
|
|
|
- agent_permissions_list } = toRefs(props);
|
|
|
+const { visible, menu_permissions_list, knowledge_permissions_list, dialog_permissions_list, agent_permissions_list } =
|
|
|
+ toRefs(props);
|
|
|
|
|
|
const emit = defineEmits(['close']);
|
|
|
+const menu_active_type = ref('all');
|
|
|
+const radio_list = [
|
|
|
+ { title: '全部', value: 'all' },
|
|
|
+ { title: '机构', value: 'org' },
|
|
|
+ { title: '个人', value: 'user' }
|
|
|
+];
|
|
|
+
|
|
|
+const menu_permissions_list_computed = computed(() => {
|
|
|
+ if (menu_active_type.value === 'all') {
|
|
|
+ return menu_permissions_list.value;
|
|
|
+ } else {
|
|
|
+ return menu_permissions_list.value.filter((item) => item.type === menu_active_type.value);
|
|
|
+ }
|
|
|
+});
|
|
|
|
|
|
const handleOk = () => {
|
|
|
emit('close'); // 关闭模态框并通知父组件更新状态
|
|
|
};
|
|
|
-
|
|
|
</script>
|
|
|
|
|
|
<style lang="css" scoped>
|
|
|
@@ -81,7 +104,7 @@ const handleOk = () => {
|
|
|
margin-bottom: 12px;
|
|
|
}
|
|
|
|
|
|
-.title-box>svg {
|
|
|
+.title-box > svg {
|
|
|
margin-right: 6px;
|
|
|
}
|
|
|
</style>
|