Vue使用枚举类型实现HTML下拉框

下拉框包含option中的Value和用来显示的选项, 一般后台都是使用的Value值,而不是显示在前台的选项

第一步: 编写下拉框需要的枚举类型

StatusEnum.java

public enum StatusEnum {
    RED,
    YELLOW,
    GREEN
}

第二步: 编写用来存放下拉框中对应的option中的Value和显示的选项

StatusDTO.java

public class StatusDTO {
    private String code;
    private String name;

    //setter , getter
}

第三步: 编写controller (resource)

statusResource.java

@Path("/status")
public class statusResource{
    @GET
    @Path("/getStatus")
    public List<StatusDTO> getStatus(){
        List<StatusDTO> list = new ArrayList<StatusDTO>();
        StatusDTO statusDTO = null;
        for(StatusEnum status : StatusEnum.values()){
            statusDTO = new StatusDTO();
            statusDTO.setCode(status.toString());
            list.add(statusDTO);
        }
        return list;
    }
}

第四步: 编写js文件

var statusModel ={
    selectStatus:[] //存放下拉框结果
}
var selectVue = new Vue({
    el:‘#selectStatus‘,// 绑定DOM,一般是绑定div
    data:statusModel  //标签中使用的model
})
var selectStatusResource = Vue.resource(‘/status/getStatus‘).get().then(function (response) {
    var statusList = response.data;
    var list = [];
    var status = null;
    for(var i = 0; i < statusList.length; i++){
        status = statusList[i].code == ‘RED‘ ? ‘红色‘ : statusList[i].code == ‘YELLOW‘ ? ‘黄色‘ : statusList[i].code == ‘GREEN‘ ? ‘绿色‘ : ‘‘;
        list.push({code:statusList[i].code,name:status});
    }
    statusModel.selectStatus = list;
});

第五步: 编写html文件

 <div  id="selectStatus" style="width:140px;height: 37px;text-align: right;margin: 0 2px;position: relative;float: left;">
            <select id="status" style="width:100%;background: #ddebff;height: 35px;color: #082451;border: 1px solid #082451;border-radius: 2px;font-size: 12px;box-shadow: 3px 3px 3px #96c0e7 inset;">
                <option value="-1">-请选择-</option>
                <option v-for="option in selectStatus" :value="option.code">{{option.name}}</option>
            </select>
        </div>

显示效果:

原文地址:https://www.cnblogs.com/gczmn/p/8417784.html

时间: 2024-10-09 16:36:14

Vue使用枚举类型实现HTML下拉框的相关文章

Vue实现树形下拉框

Vue自身并没有实现树形下拉框的组件,找了很多资料,最后在Github上找了个插件vue-treeselect,功能还是比较全的,模糊搜索.多选.延迟加载.异步搜索.排序,自定义.Vuex支持等等.这些功能在官网上都有详细的介绍: vue-treeselect官网: vue-treeselect vue-treeselect github地址: vue-treeselect 下面只做个简单的功能介绍,模糊搜索与树形结构展示: 当然,首先是下载安装插件: npm install --save @r

vue.js实现单选框、复选框和下拉框

Vue.js可以很方便的实现数据双向绑定,所以在处理表单,人机交互方面具有很大的优势.下边以单选框.复选框和下拉框为例介绍他们在HTML和Vue.js中的具体实现方式. 一.单选框 在传统的HTML中实现单选框的方法如下: <div id="app"> <input type="radio" name="gender" value="man" id="man"/><label

vue之better-scroll的封装,包含下拉刷新,上拉加载功能及UI(核心为借鉴,我仅仅是给轮子套上了外胎...)

先发原文作者.地址等信息.我把内容全部搬过来了,也可以去看原文.内容绝对是满满的干货,给原作者点赞!(我添加的内容在转载过来的后面,内容不多) 作者: ustbhuangyi 链接:http://www.imooc.com/article/18232 来源:慕课网 在我们日常的移动端项目开发中,处理滚动列表是再常见不过的需求了,以滴滴为例,可以是这样竖向滚动的列表,如图所示: 也可以是横向滚动的导航栏,如图所示: 可以打开"微信 -> 钱包->滴滴出行"体验效果. 我们在实

css模拟下拉框,vue获取双向绑定的值

原生的下拉框用vue获取值双向绑定简直不要太好用,Duang的一下就行了 <div id="datePrice"> <select v-model="selected" id="dataSel" class="dataSel" v-on:change="change"> <option v-for="item in dateList" v-bind:valu

vue获取下拉框值

vue获取下拉框的值,用vue-modle,只有点击下拉框的值才会赋值到下拉框中,初始时下拉框没有数据,而改用$event就不会出现这样的问题,下面看代码以及图解: v-model解决方式: <!-- 下拉框 --> <div v-show="moreStore" class="select"> <select class="choice" v-on:change="indexSelect" v-

商品类型的下拉框绑定一个事件,通过ajax获取属性

html代码这么写 <!-- 商品属性 --> <table cellspacing="1" cellpadding="3" width="100%" style="display:none;" class="tab"> <tr><td> <select name="Goods[type_id]"> <option val

robotframework自动化系列:文本类型的下拉框

对于下拉框定位和输入,这里主要遇到有两种类型的下拉选择. 其中一个类型是select-options格式,如图 这种方式的定位可以使用select from list by value或select from list by list或select from list等格式进行选择定位,具体可以参考随机下拉框定位选择. 而这里主要说的就是这种文本框类型的下拉选择,格式如图所示 此种文本框类型的下拉选择操作方法: 鼠标定位到设备此文本类型下拉框中 文本框中输入设备的首字母这里以0为例, 输入字母后

vue select下拉框绑定默认值

vue select下拉框绑定默认值: 首先option要加value值,以便v-model可以获取到对应选择的值 一.当没有绑定v-model,直接给对应的option加selected属性 二.当给select绑定了v-model的值的时候,要给v-model绑定的data值里写默认值

ASP.NET MVC 中枚举生成下拉框

最近公司在开发财务系统,在工作中遇到不少的地方需要下拉框. 但是枚举框中数据的内容又来自枚举. 枚举代码如下: 1 public class EnumDemo 2 { 3 4 public enum Value { 5 First=1, 6 Second=2 7 } 8 public enum Name 9 { 10 我是第一 = 1, 11 我是第二 = 2 12 } 13 14 15 16 } 我一看还挺简单. 于是第一次是这样的: 1 <select> 2 <option valu