当前位置: 首页>前端>正文

vue ts html 中如何遍历 Enum 类型构建页面结构

vue ts html 中如何遍历 Enum 类型构建页面结构

一、需求

定义了一个 Enum 用来标记菜单类型:

enum EnumMenuType {
    '目录' = 1,
    '菜单',
    '按钮',
    '外链'
}

你需要知道 Enum 它的序号是随第一个定义的值自动增长的
vue ts html 中如何遍历 Enum 类型构建页面结构,在这里插入图片描述,第1张

现在想在 ElementUI 界面的 radio-group 中遍历它,不遍历的时候是这样使用:

<el-radio-group v-model="formMenu.type" placeholder="类型">
     <el-radio :label="1">目录</el-radio>
     <el-radio :label="2">菜单</el-radio>
     <el-radio :label="3">按钮</el-radio>
     <el-radio :label="4">外链</el-radio>
 </el-radio-group>

二、实现 Enum 遍历值

1. Enum 遍历

你需要知道 Enum 在遍历的时候不光会遍历出对应的 Enum 名,还会遍历出值

for (let key in EnumMenuType){
	console.log(key)
}

// 输出为
1
2
3
4
目录
菜单
按钮
外链

2. 过滤数字值

如果直接使用

<el-radio-group v-model="formMenu.type" placeholder="类型">
    <el-radio v-for="key in EnumMenuType" :key="key" :label="key">
        {{ EnumMenuType[key] }}
    </el-radio>
</el-radio-group>

它会显示成这样:

vue ts html 中如何遍历 Enum 类型构建页面结构,在这里插入图片描述,第2张
所以需要过滤一下数字值,这里需要加一层 template 进行循环,再在里面再进行判断

<el-radio-group v-model="formMenu.type" placeholder="类型">
    <template v-for="key in EnumMenuType" :key="key">
        <el-radio v-if="isNaN(EnumMenuType[key])" :label="key">
            {{ EnumMenuType[key] }}
        </el-radio>
    </template>
</el-radio-group>

3. 结果

这样就可以了
vue ts html 中如何遍历 Enum 类型构建页面结构,在这里插入图片描述,第3张

三、应用于 select -> option

enum EnumDriverApplyStatus  {
"已提交" = 1,
"已查看",
"正在开发",
"适配完成",
"拒绝适配"
}
 <el-form-item label="" v-model="formSearch.status">
    <el-select>
        <template v-for="key in EnumDriverApplyStatus" :key="key">
            <el-option v-if="isNaN(EnumDriverApplyStatus[key])">{{EnumDriverApplyStatus[key]}}</el-option>
        </template>
    </el-select>
</el-form-item>

效果
vue ts html 中如何遍历 Enum 类型构建页面结构,在这里插入图片描述,第4张


https://www.xamrdz.com/web/2wj1849044.html

相关文章: