mirror of
https://gitee.com/lab1024/smart-admin.git
synced 2025-11-12 05:33:48 +08:00
v3.26.0 【优化】分页请求2次;【优化】菜单展开单个代码优化;【优化】操作记录返回结果;【优化】json viewer升级;【优化】S3协议优化;【优化】代码生成字典优化;
This commit is contained in:
@@ -83,8 +83,8 @@
|
||||
<a-radio-button value="chrome">Chrome</a-radio-button>
|
||||
</a-radio-group>
|
||||
</a-form-item>
|
||||
<a-form-item :label="$t('setting.flatPattern')" v-if="formState.layout === LAYOUT_ENUM.SIDE.value">
|
||||
<a-switch @change="changeFlatPattern" v-model:checked="formState.flatPattern" checked-children="多个" un-checked-children="单个" />
|
||||
<a-form-item :label="$t('setting.menu.expand')" v-if="formState.layout === LAYOUT_ENUM.SIDE.value">
|
||||
<a-switch @change="changeMenuExpandFlag" v-model:checked="formState.menuSingleExpandFlag" checked-children="单个" un-checked-children="多个" />
|
||||
</a-form-item>
|
||||
<a-form-item :label="$t('setting.pagetag')">
|
||||
<a-switch @change="changePageTagFlag" v-model:checked="formState.pageTagFlag" checked-children="显示" un-checked-children="隐藏" />
|
||||
@@ -213,8 +213,8 @@
|
||||
borderRadius: appConfigStore.borderRadius,
|
||||
// 标签页
|
||||
pageTagFlag: appConfigStore.pageTagFlag,
|
||||
// 标签页
|
||||
flatPattern: appConfigStore.flatPattern,
|
||||
// 菜单展开方式
|
||||
menuSingleExpandFlag: appConfigStore.menuSingleExpandFlag,
|
||||
// 标签页 样式
|
||||
pageTagStyle: appConfigStore.pageTagStyle,
|
||||
// 面包屑
|
||||
@@ -303,9 +303,9 @@
|
||||
});
|
||||
}
|
||||
|
||||
function changeFlatPattern(e) {
|
||||
function changeMenuExpandFlag(e) {
|
||||
appConfigStore.$patch({
|
||||
flatPattern: e,
|
||||
menuSingleExpandFlag: e,
|
||||
});
|
||||
}
|
||||
|
||||
|
||||
@@ -36,7 +36,7 @@
|
||||
import { useUserStore } from '/@/store/modules/system/user';
|
||||
|
||||
const theme = computed(() => useAppConfigStore().$state.sideMenuTheme);
|
||||
const flatPattern = computed(() => useAppConfigStore().$state.flatPattern);
|
||||
const menuSingleExpandFlag = computed(() => useAppConfigStore().$state.menuSingleExpandFlag);
|
||||
|
||||
const props = defineProps({
|
||||
collapsed: {
|
||||
@@ -46,8 +46,7 @@
|
||||
});
|
||||
|
||||
const menuTree = computed(() => useUserStore().getMenuTree || []);
|
||||
const rootSubmenuKeys = computed(()=>menuTree.value.map(item=>item.menuId));
|
||||
|
||||
const rootSubmenuKeys = computed(() => menuTree.value.map((item) => item.menuId));
|
||||
|
||||
//展开的菜单
|
||||
let currentRoute = useRoute();
|
||||
@@ -76,9 +75,15 @@
|
||||
let parentList = menuParentIdListMap.get(currentRoute.name) || [];
|
||||
|
||||
// 如果是折叠菜单的话,则不需要设置openkey
|
||||
if (!props.collapsed) {
|
||||
if (props.collapsed) {
|
||||
return;
|
||||
}
|
||||
|
||||
let needOpenKeys = _.map(parentList, 'name').map(Number);
|
||||
if (menuSingleExpandFlag.value) {
|
||||
openKeys.value = [...needOpenKeys];
|
||||
} else {
|
||||
// 使用lodash的union函数,进行 去重合并两个数组
|
||||
let needOpenKeys = _.map(parentList, 'name').map(Number);
|
||||
openKeys.value = _.union(openKeys.value, needOpenKeys);
|
||||
}
|
||||
}
|
||||
@@ -92,17 +97,18 @@
|
||||
immediate: true,
|
||||
}
|
||||
);
|
||||
function onOpenChange(openKeysParams){
|
||||
if(flatPattern.value){
|
||||
return;
|
||||
|
||||
function onOpenChange(openKeysParams) {
|
||||
if (!menuSingleExpandFlag.value) {
|
||||
return;
|
||||
}
|
||||
const latestOpenKey = openKeysParams.find((key) => openKeys.value.indexOf(key) === -1);
|
||||
if (rootSubmenuKeys.value.indexOf(latestOpenKey) === -1) {
|
||||
openKeys.value = openKeysParams;
|
||||
} else {
|
||||
openKeys.value = latestOpenKey ? [latestOpenKey] : [];
|
||||
}
|
||||
}
|
||||
const latestOpenKey = openKeysParams.find(key => openKeys.value.indexOf(key) === -1);
|
||||
if (rootSubmenuKeys.value.indexOf(latestOpenKey) === -1) {
|
||||
openKeys.value = openKeysParams;
|
||||
} else {
|
||||
openKeys.value = latestOpenKey ? [latestOpenKey] : [];
|
||||
}
|
||||
};
|
||||
defineExpose({
|
||||
updateOpenKeysAndSelectKeys,
|
||||
});
|
||||
|
||||
Reference in New Issue
Block a user