chore: 优化字典hooks使用

This commit is contained in:
xlsea
2024-09-11 16:37:35 +08:00
parent 2b14b84c67
commit 9cbbaff297
13 changed files with 94 additions and 52 deletions

View File

@ -4,16 +4,19 @@ import { useBoolean, useLoading } from '@sa/hooks';
import type { DataTableColumns, TreeInst, TreeOption } from 'naive-ui';
import { NButton, NIcon, NInput, NPopconfirm, NTooltip } from 'naive-ui';
import { fetchDeleteMenu, fetchGetMenuList } from '@/service/api/system';
import SvgIcon from '@/components/custom/svg-icon.vue';
import { useAppStore } from '@/store/modules/app';
import { menuIsFrameRecord, menuTypeRecord } from '@/constants/business';
import ButtonIcon from '@/components/custom/button-icon.vue';
import { $t } from '@/locales';
import { handleMenuTree } from '@/utils/ruoyi';
import StatusTag from '@/components/custom/status-tag.vue';
import { useDict } from '@/hooks/business/dict';
import SvgIcon from '@/components/custom/svg-icon.vue';
import DictTag from '@/components/custom/dict-tag.vue';
import ButtonIcon from '@/components/custom/button-icon.vue';
import MenuOperateDrawer from './modules/menu-operate-drawer.vue';
useDict('sys_show_hide');
useDict('sys_normal_disable');
const appStore = useAppStore();
const editingData = ref<Api.System.Menu>();
const operateType = ref<NaiveUI.TableOperateType>('add');
@ -207,7 +210,7 @@ const btnColumns: DataTableColumns<Api.System.Menu> = [
minWidth: 80,
align: 'center',
render(row) {
return <StatusTag size="small" value={row.status} />;
return <DictTag size="small" value={row.status} dict-code="sys_normal_disable" />;
}
},
{
@ -259,8 +262,6 @@ const btnColumns: DataTableColumns<Api.System.Menu> = [
}
}
];
const { record: showHideRecord } = useDict('sys_show_hide');
</script>
<template>
@ -367,7 +368,7 @@ const { record: showHideRecord } = useDict('sys_show_hide');
<NTag size="small" type="primary">{{ menuTypeRecord[currentMenu.menuType!] }}</NTag>
</NDescriptionsItem>
<NDescriptionsItem label="菜单状态">
<StatusTag size="small" :value="currentMenu.status" />
<DictTag size="small" :value="currentMenu.status" dict-code="sys_normal_disable" />
</NDescriptionsItem>
<NDescriptionsItem label="菜单名称">{{ currentMenu.menuName }}</NDescriptionsItem>
<NDescriptionsItem v-if="currentMenu.menuType === 'C'" label="组件路径">
@ -391,9 +392,7 @@ const { record: showHideRecord } = useDict('sys_show_hide');
</NTag>
</NDescriptionsItem>
<NDescriptionsItem label="显示状态">
<NTag v-if="currentMenu.visible" size="small" :type="tagMap[currentMenu.visible]">
{{ showHideRecord[currentMenu.visible] }}
</NTag>
<DictTag size="small" :value="currentMenu.visible" dict-code="sys_show_hide" />
</NDescriptionsItem>
<NDescriptionsItem v-if="currentMenu.menuType === 'C'" label="是否缓存">
<NTag v-if="currentMenu.isCache" size="small" :type="tagMap[currentMenu.isCache]">

View File

@ -9,7 +9,6 @@ import { menuIconTypeOptions, menuIsFrameOptions, menuTypeOptions } from '@/cons
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'
@ -40,9 +39,6 @@ const visible = defineModel<boolean>('visible', {
default: false
});
const { options: showHideOptions } = useDict('sys_show_hide', false);
const { options: enableStatusOptions } = useDict('sys_normal_disable');
const iconType = ref<Api.System.IconType>('1');
const { formRef, validate, restoreValidation } = useNaiveForm();
const { createRequiredRule } = useFormRules();
@ -411,11 +407,7 @@ const FormTipComponent = defineComponent({
<span class="pl-3px">显示状态</span>
</div>
</template>
<NRadioGroup v-model:value="model.visible">
<NSpace>
<NRadio v-for="item in showHideOptions" :key="item.value" :value="item.value" :label="item.label" />
</NSpace>
</NRadioGroup>
<DictRadio v-model:value="model.visible" dict-code="sys_show_hide" />
</NFormItemGi>
<NFormItemGi :span="12" path="status">
<template #label>
@ -424,11 +416,7 @@ const FormTipComponent = defineComponent({
<span class="pl-3px">菜单状态</span>
</div>
</template>
<NRadioGroup v-model:value="model.status">
<NSpace>
<NRadio v-for="item in enableStatusOptions" :key="item.value" :value="item.value" :label="item.label" />
</NSpace>
</NRadioGroup>
<DictRadio v-model:value="model.status" dict-code="sys_normal_disable" />
</NFormItemGi>
<NFormItemGi :span="12" label="显示排序" path="orderNum">
<NInputNumber v-model:value="model.orderNum" placeholder="请输入排序" />