element ui 动态渲染下拉框并实现多选的功能

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了element ui 动态渲染下拉框并实现多选的功能相关的知识,希望对你有一定的参考价值。

参考技术A <template>

    <div>

    <el-select v-model="value1" multiple placeholder="请选择" @remove-tag="aa"@change="getvalue">

          <el-option v-for="item in options" :key="item.id"  :label="item.label" :value="item.id">item.label</el-option>

    </el-select>

    </div>

</template>

<script>

export default

    data()

          return

        options: [],

        value1: [],

        PersonType:""

         

    ,

    methods:

        getvalue()

            console.log(this.value1)

        ,

        headSelect()

            console.log(this.PersonType)

       

    ,

    created()

    setTimeout(()=>  //模拟数据

        var arr =[

          id:1,

          value: '选项1',

          label: '香蕉'

        ,

            id:2,

          value: '选项2',

          label: '双皮奶'

        ,

            id:3,

          value: '选项3',

          label: '蚵仔煎'

        ,

            id:4,

          value: '选项4',

          label: '龙须面'

        ,

            id:5,

          value: '选项5',

          label: '北京烤鸭'

        ]

      this.options = arr;

          ,1000)

   



</script>

fastadmin 实现标签的多选研究---基于fa的test案例

官方文档

动态下拉组件
https://doc.fastadmin.net/doc/178.html

首先生成控制器和菜单看下fa_test的多选效果

技术图片

多选效果如下

技术图片


技术图片


技术图片

使用多选的两种方式(chekbox是最简单的,那中多选就不算了)

1.input里使用多选(官网中,以分类id的多选为例,因为ui的逼格比较高,所以我使用这个。)
view

<div class="form-group">
        <label class="control-label col-xs-12 col-sm-2">{:__(‘Category_ids‘)}:</label>
        <div class="col-xs-12 col-sm-8">
            <input id="c-category_ids" data-rule="required" data-source="category/selectpage" data-params=‘{"custom[type]":"test"}‘ data-multiple="true" class="form-control selectpage" name="row[category_ids]" type="text" value="">
        </div>
    </div>

2.select里使用多选(官网中,以状态的多选为例子)
view

  <div class="form-group">
        <label class="control-label col-xs-12 col-sm-2">{:__(‘Flag‘)}:</label>
        <div class="col-xs-12 col-sm-8">
                        
            <select  id="c-flag" data-rule="required" class="form-control selectpicker" multiple="" name="row[flag][]">
                {foreach name="flagList" item="vo"}
                    <option value="{$key}" {in name="key" value=""}selected{/in}>{$vo}</option>
                {/foreach}
            </select>

        </div>
    </div>

具体的方式,大家,看相关的test控制器和js,以及模型

控制器中直接引入一个方法

  /**
     * Selectpage搜索
     *
     * @internal
     */
    public function selectpage()
    {
        return parent::selectpage();
    }
}

如何,让多选项是树状效果呢?

注释掉父类的方法,重写自己的方法

   /**
     * Selectpage搜索
     *
     * @internal
     */
    public function selectpage()
    {
        // return parent::selectpage();
        // 注释掉继承的,下面是重写的

         //  获取标签列表,渲染成右侧的树形,记得引入use fast/tree 这个命名空间
        $wenzhang_tags_right=collection(db::name("cms_exams_tags")->select())->toArray();
        $tree = Tree::instance();
        $tree->init($wenzhang_tags_right, ‘parent‘);
        $this->tagsListRight = $tree->getTreeList($tree->getTreeArray(0), ‘text‘);
        
         //对请求进行判断,并返回json数据,
        if ($this->request->isAjax()) {
           
            //构造父类select列表选项数据
           
            $list = $this->tagsListRight;
          
            $list = array_values($list);
          
        //   下面这个,是设置pid的,不设置,就会成undefine,前端的展开隐藏,靠这个pid
            foreach ($list as $k => &$v) {
                $v[‘pid‘] = $v[‘parent‘];
             
            }
            $total = count($list);
            $result = array("total" => $total, "rows" => $list);

            return json($result);
        }
        
    }
    

接下来,就是多个tag如何存储的问题,以及如何读取的问题了

1.存储,要操作tag表
2.读取,也要操作tag表,并且,view视图里,如何写,也是个问题
3.如何搜索
4.如何批量录入







以上是关于element ui 动态渲染下拉框并实现多选的功能的主要内容,如果未能解决你的问题,请参考以下文章

Element-ui中 选择器(select)多选下拉框实现全选功能

javascript 可多选的下拉框 multiselect 动态删除option值,动态添加option值,动态生成表格

element-ui&table 多选的筛选功能 不用点击筛选按钮,勾选就能触发搜索值

element-ui中的table可分页多选功能-记住上一页勾选数据

Element-UI级联选择器el-cascader报错Cannot read property level of null

HTML多选下拉框怎么做