新增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 request from '/@/utils/request';
import {ref ,toRefs,ToRefs} from 'vue' 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> { export function getDicts(dictType :string,defaultValue?:string):Promise<any> {
let dv = defaultValue??'' 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({}); const res:any = ref({});
args.forEach((d:string) => { args.forEach((d:string) => {
res.value[d] = []; 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 })) 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-col :xs="24" :sm="12" :md="12" :lg="12" :xl="12" class="mb20">
<el-form-item label="是否隐藏"> <el-form-item label="是否隐藏">
<el-radio-group v-model="ruleForm.isHide"> <el-radio-group v-model="ruleForm.isHide">
<el-radio label="0">显示</el-radio> <el-radio
<el-radio label="1">隐藏</el-radio> v-for="dict in visibleOptions"
:key="dict.value"
:label="dict.value"
>{{ dict.label }}</el-radio>
</el-radio-group> </el-radio-group>
</el-form-item> </el-form-item>
</el-col> </el-col>
@@ -147,6 +150,10 @@ export default defineComponent({
name: 'systemEditMenu', name: 'systemEditMenu',
components: { IconSelector }, components: { IconSelector },
props:{ props:{
visibleOptions:{
type:Array,
default:()=>[],
},
acType:{ acType:{
type:String, type:String,
default:()=>'add' default:()=>'add'

View File

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