新增getDict接口方法并重构菜单显示隐藏选项为动态字典数据

This commit is contained in:
WUSIJIAN
2026-01-04 11:18:54 +08:00
parent e8affcc753
commit a5f68f1523
3 changed files with 26 additions and 4 deletions

View File

@@ -1,5 +1,19 @@
import request from '/@/utils/request';
import {ref ,toRefs,ToRefs} from 'vue'
// 根据字典类型查询字典数据信息
export function getDict(dictType :string,defaultValue?:string):Promise<any> {
let dv = defaultValue??''
let params ={
dictType:dictType,
defaultValue:dv
}
return request({
url: '/api/v1/system/dict/data/getDictData',
method: 'get',
params:params
})
}
// 根据字典类型查询字典数据信息
export function getDicts(dictType :string,defaultValue?:string):Promise<any> {
let dv = defaultValue??''
@@ -14,6 +28,7 @@ export function getDicts(dictType :string,defaultValue?:string):Promise<any> {
})
}
/**
* 获取字典数据
*/
@@ -21,7 +36,7 @@ export function useDict(...args:string[]):ToRefs<any>{
const res:any = ref({});
args.forEach((d:string) => {
res.value[d] = [];
getDicts(d).then(resp => {
getDict(d).then(resp => {
res.value[d] = resp.data.values.map((p:any) => ({ label: p.value, value: p.key, isDefault: p.isDefault }))
})
})

View File

@@ -85,8 +85,11 @@
<el-col :xs="24" :sm="12" :md="12" :lg="12" :xl="12" class="mb20">
<el-form-item label="是否隐藏">
<el-radio-group v-model="ruleForm.isHide">
<el-radio label="0">显示</el-radio>
<el-radio label="1">隐藏</el-radio>
<el-radio
v-for="dict in visibleOptions"
:key="dict.value"
:label="dict.value"
>{{ dict.label }}</el-radio>
</el-radio-group>
</el-form-item>
</el-col>
@@ -147,6 +150,10 @@ export default defineComponent({
name: 'systemEditMenu',
components: { IconSelector },
props:{
visibleOptions:{
type:Array,
default:()=>[],
},
acType:{
type:String,
default:()=>'add'

View File

@@ -76,7 +76,7 @@
</el-table-column>
</el-table>
</el-card>
<EditMenu ref="editMenuRef" @menuList="menuList" :acType="acType"/>
<EditMenu ref="editMenuRef" @menuList="menuList" :visibleOptions="sys_show_hide" :acType="acType"/>
</div>
</template>