feat: 封装数据字典

This commit is contained in:
xlsea
2024-09-04 09:11:04 +08:00
parent 0130688265
commit 3d426fb8e1
20 changed files with 421 additions and 24 deletions

View File

@ -11,6 +11,7 @@ import ButtonIcon from '@/components/custom/button-icon.vue';
import { $t } from '@/locales';
import { handleMenuTree } from '@/utils/ruoyi';
import StatusTag from '@/components/common/status-tag.vue';
import { useDict } from '@/hooks/business/dict';
import MenuOperateDrawer from './modules/menu-operate-drawer.vue';
const appStore = useAppStore();
@ -258,6 +259,18 @@ const btnColumns: DataTableColumns<Api.System.Menu> = [
}
}
];
const enableStatusRecord = ref<CommonType.Record>({});
const showHideRecord = ref<CommonType.Record>({});
async function initDictData() {
const { getDictRecord } = useDict();
const { sys_show_hide, sys_normal_disable } = await getDictRecord('sys_show_hide', 'sys_normal_disable');
enableStatusRecord.value = sys_normal_disable;
showHideRecord.value = sys_show_hide;
}
initDictData();
</script>
<template>
@ -381,7 +394,7 @@ const btnColumns: DataTableColumns<Api.System.Menu> = [
</NDescriptionsItem>
<NDescriptionsItem label="显示状态">
<NTag v-if="currentMenu.visible" size="small" :type="tagMap[currentMenu.visible]">
{{ currentMenu.visible === '0' ? '显示' : '隐藏' }}
{{ showHideRecord[currentMenu.visible] }}
</NTag>
</NDescriptionsItem>
<NDescriptionsItem v-if="currentMenu.menuType === 'C'" label="是否缓存">

View File

@ -5,10 +5,11 @@ import { NTooltip } from 'naive-ui';
import { useFormRules, useNaiveForm } from '@/hooks/common/form';
import { $t } from '@/locales';
import { fetchCreateMenu, fetchUpdateMenu } from '@/service/api';
import { enableStatusOptions, menuIconTypeOptions, menuTypeOptions } from '@/constants/business';
import { menuIconTypeOptions, menuTypeOptions } from '@/constants/business';
import SvgIcon from '@/components/custom/svg-icon.vue';
import { getLocalMenuIcons } from '@/utils/icon';
import { humpToLine, isNotNull } from '@/utils/common';
import { useDict } from '@/hooks/business/dict';
defineOptions({
name: 'MenuOperateDrawer'
@ -216,6 +217,7 @@ watch(visible, () => {
if (visible.value) {
handleInitModel();
restoreValidation();
initDictData();
}
});
@ -249,6 +251,16 @@ const FormTipComponent = defineComponent({
);
}
});
const enableStatusOptions = ref<Array<CommonType.Option>>([]);
const showHideOptions = ref<Array<CommonType.Option>>([]);
async function initDictData() {
const { getDictOptions } = useDict();
const { sys_show_hide, sys_normal_disable } = await getDictOptions('sys_show_hide', 'sys_normal_disable');
enableStatusOptions.value = sys_normal_disable;
showHideOptions.value = sys_show_hide;
}
</script>
<template>
@ -398,8 +410,7 @@ const FormTipComponent = defineComponent({
</template>
<NRadioGroup v-model:value="model.visible">
<NSpace>
<NRadio value="0" label="显示" />
<NRadio value="1" label="隐藏" />
<NRadio v-for="item in showHideOptions" :key="item.value" :value="item.value" :label="item.label" />
</NSpace>
</NRadioGroup>
</NFormItemGi>