chore: seed migration objects batch 17
This commit is contained in:
@@ -0,0 +1,102 @@
|
||||
import { cloneDeep } from 'lodash-es';
|
||||
import { useDictStore } from '@/store/modules/dict';
|
||||
|
||||
const dict = useDictStore();
|
||||
|
||||
export interface State {
|
||||
id: number;
|
||||
pid?: number | null;
|
||||
title: string;
|
||||
name: string;
|
||||
path: string;
|
||||
label: string;
|
||||
icon: string;
|
||||
type: number;
|
||||
redirect: string;
|
||||
permissions: string;
|
||||
permissionName: string;
|
||||
component?: string | null;
|
||||
alwaysShow: number;
|
||||
activeMenu: string;
|
||||
isRoot: number;
|
||||
isFrame: number;
|
||||
frameSrc: string;
|
||||
keepAlive: number;
|
||||
hidden: number;
|
||||
affix: number;
|
||||
status: number;
|
||||
sort: number;
|
||||
disabled: boolean;
|
||||
children?: State[] | null;
|
||||
}
|
||||
|
||||
export const defaultState: State = {
|
||||
id: 0,
|
||||
pid: 0,
|
||||
title: '',
|
||||
name: '',
|
||||
path: '',
|
||||
label: '',
|
||||
icon: '',
|
||||
type: 1,
|
||||
redirect: '',
|
||||
permissions: '',
|
||||
permissionName: '',
|
||||
component: null,
|
||||
alwaysShow: 2,
|
||||
activeMenu: '',
|
||||
isRoot: 2,
|
||||
isFrame: 2,
|
||||
frameSrc: '',
|
||||
keepAlive: 2,
|
||||
hidden: 2,
|
||||
affix: 2,
|
||||
status: 1,
|
||||
sort: 10,
|
||||
disabled: false,
|
||||
children: null,
|
||||
};
|
||||
|
||||
export function newState(state: State | null): State {
|
||||
if (state !== null) {
|
||||
return defaultValueCheck(cloneDeep(state));
|
||||
}
|
||||
return defaultValueCheck(cloneDeep(defaultState));
|
||||
}
|
||||
|
||||
// 默认值校正,主要为了解决历史数据格式不规范问题
|
||||
export function defaultValueCheck(state: State): State {
|
||||
if (!state) {
|
||||
state = newState(null);
|
||||
}
|
||||
if (!state.pid || state.pid < 1) {
|
||||
state.pid = null;
|
||||
}
|
||||
if (state.alwaysShow != 1) {
|
||||
state.alwaysShow = 2;
|
||||
}
|
||||
if (state.isRoot != 1) {
|
||||
state.isRoot = 2;
|
||||
}
|
||||
if (state.isFrame != 1) {
|
||||
state.isFrame = 2;
|
||||
}
|
||||
if (state.keepAlive != 1) {
|
||||
state.keepAlive = 2;
|
||||
}
|
||||
if (state.hidden != 1) {
|
||||
state.hidden = 2;
|
||||
}
|
||||
if (state.affix != 1) {
|
||||
state.affix = 2;
|
||||
}
|
||||
if (state.status != 1) {
|
||||
state.status = 2;
|
||||
}
|
||||
return state;
|
||||
}
|
||||
|
||||
// 加载字典数据选项
|
||||
export function loadOptions() {
|
||||
dict.loadOptions(['sys_menu_types', 'sys_menu_component', 'sys_normal_disable', 'sys_switch']);
|
||||
}
|
||||
Reference in New Issue
Block a user